Unity是微软团队开发的一个轻量级,可扩展的依赖注入容器,为松散耦合应用程序提供了很好的解决方案,支持构造器注入,属性注入,方法注入。
同样根据控制反转IOC与依赖注入DI中的例子
interface IDal
{
void save();
}
class SqlServerDal : IDal
{
public void save()
{
Console.WriteLine("SqlServer save.");
}
}
class OracleDal : IDal
{
public void save()
{
Console.WriteLine("Oracle save.");
}
}
Unity的实现如下:
IUnityContainer container = new UnityContainer();
container.RegisterType<IDal, OracleDal>();
var dal = container.Resolve<IDal>();//这是得到OracleDal的实例。
dal.save();
1、创建容器
IUnityContainer container = new UnityContainer();
2、注册映射
a) 代码方式注册映射:
container.RegisterType<IDal, OracleDal>();
RegisterType有以下几个重载方法:
RegisterType<TFrom, TTo>( )
RegisterType<TFrom, TTo
RegisterType<TFrom, TTo>( )
RegisterType<TFrom, TTo