代码改变世界

全局容器的创建和使用---单件模式和IOC的容器的应用

2010-03-18 21:02  穆容  阅读(980)  评论(2编辑  收藏  举报

 

  在下面的应用中,在程序初始化时,对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>();