依赖注入容器 Castle windsor的使用

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

简单使用:

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

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

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

IWindsorContainercontainer=newWindsorContainer();

//下面为你要注册的组件,即注入容器的配置。

//“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注入:

publicITestServiceTestService{get;set;}

TestService.getmethod();//调用TestService中的getmethod()方法

2)构造器注入:

publicpartialclassForm1:Form
{
privateITestService_service;

publicForm1(ITestServicetestService)
{
InitializeComponent();

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

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...