在下面的应用中,在程序初始化时,对IOC容器进行装载和注入。
然后在程序的业务层中,直接从全局IOC容易中进行取用。
代码如下
//主要是应用了单件模式
public class global
{
private static IUnityContainer container; //全局静态容器
private static void Init()
{
//装载容器项
container = new UnityContainer();
container.RegisterType<ABoxDept, BoxDept>();
ABoxDept boxdept = container.Resolve<ABoxDept>();
container.RegisterType<IDataBase, DataBase>(new InjectionConstructor(boxdept));
}
public static IUnityContainer GetContainer()//单件的获取模式
{
if (container != null)
{
return container;
}
else
{
Init();
return container;
}
}
}
在程序中,用下面的方式进行对象获取:
IUnityContainer container = global.GetContainer();
IDataBase db = container.Resolve<IDataBase>();