依赖注入容器 Castle windsor的使用

       在Castle中包含了一组开发框架,它里面的IOC容器是Windsor。在Windsor中提出了自动装配的概念,由容器来自动管理组件之间的依赖关系,无需用户去编写XML配置文件或者通过Attribute来指定容器之间的依赖关系。这样在使用上非常的简单,同时也带了一些问题,作为开发人员的我们无法控制组件的依赖关系。

       简单使用:

              1.添加Castle.Core.dll,Castle.Windsor两个引用。

              2.创建被用于注入的接口和其实现。

              3.在程序的入口处(winform在Main函数下,Web Application在Application_start()下)添加如下代码

            IWindsorContainer container = new WindsorContainer();
            
            //下面为你要注册的组件,即注入容器的配置。
            
            //“WindowsFormsApplication1” 为程序集名称,Form为要注册类的基类
            container.Register(AllTypes.FromAssemblyNamed("WindowsFormsApplication1")
                                       .BasedOn<Form>().WithService.DefaultInterfaces());
                                       
            //“Tasks”为你的程序集名称,“Service”为你的“IService”接口的实现类
            container.Register(AllTypes.FromAssemblyNamed("Tasks").Pick()
                                       .If(t => t.Name.EndsWith("Service"))
                                       .WithService.DefaultInterfaces());

             4.在调用出实现注入,并调用。

                    1)属性/Setter注入:               

        public ITestService TestService { get; set; }
        
        TestService.GetMethod();//调用TestService中的GetMethod()方法

                    2)构造器注入:

    public partial class Form1 : Form
    {
        private ITestService _service;

        public Form1(ITestService testService)
        {
            InitializeComponent();

            _service = testService;
            _service.GetMethod();//调用TestService中的GetMethod()方法
        }
    }


转载于:https://my.oschina.net/MerylLiu/blog/214492

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值