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 即可获取特定的实现类。

时间: 2024-08-01 21:05:42

Castle学习系列(九)---Windsor框架快速入门的相关文章

Castle学习系列(十)---Windsor框架类注册

上篇已经学习了Windsor的快速入门,框架的配置只需要两步,本篇学习下这个两步配置针对特定场景的自定义的配置,我只学习了代码的配置,对于XML的配置可以参考官方文档http://docs.castleproject.org/Windsor.XML-Registration-Reference.ashx.   安装的配置 安装的配置比较简单,无非是寻找安装类,并执行安装并获取容器,所有的安装类都需要继承自IWindsorInstaller,此接口规定了方法如下: void Install(IWi

Castle学习系列(十一)---Windsor性能检测

Windsor提供了容器性能检测的功能,只需在程序启动的时候后添加一下代码 var diagnostic = LifecycledComponentsReleasePolicy.GetTrackedComponentsDiagnostic(_container.Kernel); var counter = LifecycledComponentsReleasePolicy.GetTrackedComponentsPerformanceCounter(new PerformanceMetricsF

Python学习系列(一)(基础入门)

Python入门 本系列为Python学习相关笔记整理所得,IT人,多学无害,多多探索,激发学习兴趣,开拓思维,不求高大上,只求懂点皮毛,作为知识储备,不至于落后太远.如果兴趣学习者,推荐一个基础视频:http://edu.51cto.com/lesson/id-11637.html 本文主要介绍Python的相关背景,环境搭建. 一.了解Python 1,关于Python的语言特点: 借用Python官网Https://www.python.org的解释: Python is powerful

Python学习基础篇第一篇——快速入门(适合初学者)

一.Python学习基础篇第一篇--(快速入门) 建议从Python2.7开始学习,Python2.7可以支持扩展大量的第三方类库,是目前比较成熟的版本 编写代码的软件推荐将python自带的IDLE和PyCharm集成IDE结合起来使用 1.1 Python命令行 Python命令行将以 >>> 开始,比如 >>>print 'Hello World!' 对于验证简单的命令可以在python自带的IDLE中完成  1.2 在Python自带的IDLE写一段小程序 在所

Maven 系列 一 :Maven 快速入门及简单使用【转】

开发环境 MyEclipse 2014 JDK 1.8 Maven 3.2.1 1.什么是Maven? Maven是一个项目管理工具,主要用于项目构建,依赖管理,项目信息管理. 2.下载及安装 下载最新版 Maven:apache-maven-3.2.1-bin.zip.官网下载:http://maven.apache.org/download.cgi. 解压文件: 配置环境变量(需要先配置好%JAVA_HOME%环境变量): 查看是否配置成功: 其他配置:settings.xml(后面讲到)

Maven 系列 一 : Maven 快速入门及简单使用

开发环境 MyEclipse 2014 JDK 1.8 Maven 3.2.1 1.什么是Maven? Maven是一个项目管理工具,主要用于项目构建,依赖管理,项目信息管理. 2.下载及安装 下载最新版 Maven:apache-maven-3.2.1-bin.zip.官网下载:http://maven.apache.org/download.cgi. 解压文件: 配置环境变量(需要先配置好%JAVA_HOME%环境变量): 查看是否配置成功: 其他配置:settings.xml(后面讲到)

Python学习系列(四)Python 入门语法规则2

Python学习系列(四)Python 入门语法规则2 2017-4-3 09:18:04 编码和解码 Unicode.gbk,utf8之间的关系 2.对于py2.7, 如果utf8>gbk, utf8解码成Unicode,再将unicode编码成gbk 对于py3.5 如果utf8>gbk, utf8 直接编码成gbk(中间那一步直接被优化了) 3.很多时候,这个可以直接跳过,只有当编码出下问题的时候,再考虑这个知识点 二.运算符 1.算数运算: 2.比较运算: 3.赋值运算: 4.逻辑运算

(Spring Boot框架)快速入门

Spring Boot 系列文章推荐 Spring Boot 入门 Spring Boot 属性配置和使用 Spring Boot 集成MyBatis Spring Boot 静态资源处理 今天介绍一下如何利用Spring MVC快速的搭建一个简单的web应用. 环境准备 一个称手的文本编辑器(例如Vim.Emacs.Sublime Text)或者IDE(Eclipse.Idea Intellij) Java环境(JDK 1.7或以上版本) Maven 3.0+(Eclipse和Idea Int

kubernetes系列教程(三)kubernetes快速入门

写在前面 kubernetes中涉及很多概念,包含云生态社区中各类技术,学习成本比较高,k8s中通常以编写yaml文件完成资源的部署,对于较多入门的人来说是个较高的门坎,本文以命令行的形式代理大家快速入门,俯瞰kubernetes核心概念,快速入门. 1. 基础概念 1.1 集群与节点 kubernetes是一个开源的容器引擎管理平台,实现容器化应用的自动化部署,任务调度,弹性伸缩,负载均衡等功能,cluster是由master和node两种角色组成,其中master负责管理集群,master节