依赖注入容器 Castle windsor的使用
发布时间:2020-12-13 23:12:22 所属栏目:百科 来源:网络整理
导读:在Castle中包含了一组开发框架,它里面的IOC容器是Windsor。在Windsor中提出了自动装配的概念,由容器来自动管理组件之间的依赖关系,无需用户去编写XML配置文件或者通过Attribute来指定容器之间的依赖关系。这样在使用上非常的简单,同时也带了一些问题,作
在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()方法 } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |