Introducción: Tres ejemplos son inyectados escritos en C #, y siguen el blog el fin de la base de datos de ejemplo
inyección Constructor: Como el nombre sugiere, es utilizar un constructor implementado en forma de inyección
Y en la entrada del blog aquí la diferencia es más de una interfaz, Orden inyecta en la interfaz, en lugar de clases específicas.
SqlServerDal categorías, de acceso:
aplicación de base de datos de la interfaz, con la funcionalidad añadida de pedidos
using System;
namespace Ioc2
{
class SqlServerDal:IDataAccess
{
public void Add()
{
Console.WriteLine("在sqlserver数据库中添加一条订单");
}
}
}
namespace Ioc2
{
class Access:IDataAccess
{
public void Add()
{
Console.WriteLine("在access数据库中添加一条订单");
}
}
}
Solicitar categorías:
El comportamiento abstracto base de datos (interfaz) de inyección función construida
namespace Ioc2
{
class Order
{
private IDataAccess _ida;
public Order(IDataAccess ida)
{
this._ida = ida;
}
public void Add()
{
_ida.Add();
}
}
}
Base de datos de interfaz IDataAccess:
Interface es una acciones clase abstracta, la base de datos se utiliza para agregar datos, los datos se pueden añadir no sólo sqlserver base de datos, por lo que vamos a añadir () este comportamiento resumir, se puede añadir el tiempo que el orden de la clase de base de datos puede ser inyectada.
namespace Ioc2
{
interface IDataAccess
{
void Add();
}
}
cliente:
Qué base de datos con la que crear una instancia y por escrito a la clase de orden como un parámetro
namespace Ioc2
{
class Program
{
static void Main(string[] args)
{
//这里用的是sqlserver数据库
//如果要改为其他数据库,添加其他数据库的类并在此实例化即可
SqlServerDal dal = new SqlServerDal();
//Access access=new Access();
Order order = new Order(dal);
//调用Add()方法,添加订单
order.Add();
}
}
}