Castle学习系列(九)---Windsor框架快速入门
2015-03-15 14:54
736 查看
Windsor是Castle提供的一个IOC框架,使用非常简单,支持批量注册。开始快速入门
首先引用dll
两个dll版本均是最新的3.3.0.0
新建两个接口文件IPrinter(打印接口)和ICharge(收费接口)
之后就可以进行IOC容器的相关配置了,配置步骤如下:1.新建继承自IWindsorInstaller的安装类,在容器初始化的时候需要加载该安装类。2.在安装类中注册需要加入容器控制的接口及实现。
具体代码如下:
其中CastleWindsor.IEntity是实现类所在的空间。
然后客户端代码只用如下调用即可
从以上代码可以发现Windsor的代码配置分两步1.注册相关实现类到特定的安装类2.执行安装类的安装。
要想从容器中获取特定的类只需调用container.Resolve 即可获取特定的实现类。
首先引用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 ActiveRecord学习实践(1):快速入门指南
- Castle ActiveRecord学习实践(1):快速入门指南
- Gradle学习系列之一——Gradle快速入门(转)
- DWR框架快速入门<学习随笔>
- 【学习笔记】系列七:Lua 语言 15 分钟快速入门
- [新手入门]快速学习 ADO.NET Entity Framework系列文章 #1~#2
- Html5 学习系列(五)Canvas绘图API快速入门(1)
- Gradle学习系列之一——Gradle快速入门
- Castle ActiveRecord框架学习(二):快速搭建简单博客网站
- Gradle学习系列之一——Gradle快速入门
- [新手入门]快速学习 ADO.NET Entity Framework系列文章 #4 -- 数据新增、删除、修改(ObkectContext的 .SaveChange()方法)
- Gradle学习系列之一——Gradle快速入门
- Sencha+Touch+框架快速入门系列+导航
- DWR框架快速入门<学习随笔>
- Castle ActiveRecord学习实践(1):快速入门指南
- Castle ActiveRecord学习实践(1):快速入门指南
- python学习系列一:python快速入门
- Gradle学习系列之一——Gradle快速入门
- git 学习系列之一:快速入门
- 快速入门系列--WebAPI--03框架你值得拥有