我是靠谱客的博主 儒雅钢笔,最近开发中收集的这篇文章主要介绍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 即可获取特定的实现类。

最后

以上就是儒雅钢笔为你收集整理的Castle学习系列(九)---Windsor框架快速入门的全部内容,希望文章能够帮你解决Castle学习系列(九)---Windsor框架快速入门所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部