Castle學習系列(九)---Windsor框架快速入門

        Windsor是Castle提供的一個IOC框架,使用非常簡單,支持批量註冊。開始快速入門

        首先引用dll

 

兩個dll版本均是最新的3.3.0.0

新建兩個接口文件IPrinter(打印接口)和ICharge(收費接口)

    public interface IPrinter
    {
        void RegPrint(int regID);
        void ClinicPrint(int chargeID);
    }


    public interface ICharge
    {
        void ClinicChcarge();
    }
然後分別建立實現:

    public class WenZhouPrinter:IPrinter
    {
        public void RegPrint(int regID)
        {
            Console.WriteLine("溫州掛號打印 "+regID.ToString());
        }
        public void ClinicPrint(int chargeID)
        {
            Console.WriteLine("溫州門診打印 " + chargeID.ToString());
        }
    }


    public class WenZhouCharge:ICharge
    {
        public IPrinter printer { set; get; }
        
        public void ClinicChcarge()
        {
            Console.WriteLine("溫州門診收費");
            printer.ClinicPrint(100000);
        }
    }

之後就可以進行IOC容器的相關配置了,配置步驟如下:1.新建繼承自IWindsorInstaller的安裝類,在容器初始化的時候需要加載該安裝類。2.在安裝類中註冊需要加入容器控制的接口及實現。

具體代碼如下:

    public class ChargeInstaller : IWindsorInstaller
    {
        public void Install(IWindsorContainer container, IConfigurationStore store)
        {
            container.Register(Classes.FromThisAssembly().InNamespace("CastleWindsor.IEntity").WithService.DefaultInterfaces());
        }
    }

其中CastleWindsor.IEntity是實現類所在的空間。

    public class WindsorInit
    {
        private static WindsorContainer _container;
        public static WindsorContainer GetContainer()
        {
            if (_container == null)
            {
                _container = new WindsorContainer();
                _container.Install(
                       FromAssembly.This()
                       );
            }
            return _container;
        }

        public void CloseContex()
        {
            _container.Dispose();
        }
    }


然後客戶端代碼只用如下調用即可

    WindsorContainer container=WindsorInit.GetContainer();
    ICharge charge = container.Resolve<ICharge>(new Arguments(new { }));
    charge.ClinicChcarge();


從以上代碼可以發現Windsor的代碼配置分兩步1.註冊相關實現類到特定的安裝類2.執行安裝類的安裝。

要想從容器中獲取特定的類只需調用container.Resolve 即可獲取特定的實現類。

發佈了62 篇原創文章 · 獲贊 10 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章