依赖注入框架Castle Windsor从容器里解析一个实例时(也就是调用Resolve方法),是通过调用待解析对象的构造函数new一个对象并返回,那么问题是:它是调用哪个构造函数呢? 无参的构造函数 带参但参数不是靠依赖注入的构造函数 带参且参数是靠依赖注入的构造函数 有多个带参且参数是靠依赖注入的构造函数 带着这个问题,我写了一段测试代码. 测试1: 只有一个无参构造函数: CtorTest类(在控制台程序里用Windsor解析这个类) public class CtorTest { pub…
介绍 Castle Windsor 是微软的Ioc类库,本文主要介绍解决一个接口多个实现的解决方案 接口和类 以下内容不是真实的实际场景,仅仅是提供解决一个接口多个实现的思路. 业务场景类 先假设有一接口IHello,该接口提供一个方法SayHello(string name),代码如下: public interface IHello { void SayHello(string name); } 这个接口有三个实现类,分别是ShanghaiHello WuxiHello 和 BeijingH…
最近在研究ABP项目,有关ABP的介绍请看阳光铭睿 博客,ABP的DI和AOP框架用的是Castle Windsor下面就对Castle Windsor项目常用方法介绍和关于ABP的使用总结 1.下载Castle.Windsor所需要的dll,在程序包管理器控制台 运行Install-Package Castle.Windsor 下面先看个简单的例子 var container = new WindsorContainer(); container.Register( Component.For…
Castle Windsor常用介绍以及其在ABP项目的应用介绍 最近在研究ABP项目,有关ABP的介绍请看阳光铭睿 博客,ABP的DI和AOP框架用的是Castle Windsor下面就对Castle Windsor项目常用方法介绍和关于ABP的使用总结 1.下载Castle.Windsor所需要的dll,在程序包管理器控制台 运行Install-Package Castle.Windsor 下面先看个简单的例子 1 2 3 4 5 6 7 8 var container = new Wind…
es6 Promise.resolve()方法 2018-01-27 22:29:06 ixygj197875 阅读数 16925更多 分类专栏: ES6标准入门 (阮一峰) ES6标准入门   Promise.resolve()方法 有时需要将现有对象转为 Promise 对象,Promise.resolve方法就起到这个作用. const jsPromise = Promise.resolve($.ajax('/whatever.json')); 上面代码将 jQuery 生成的deferr…
这篇博客要说的东西跟ABP,AutoMapper和Castle Windsor都有关系,而且也是我在项目中遇到的问题,最终解决了,现在的感受就是“痛并快乐着”. 首先,这篇博客不是讲什么新的知识点,而是一次实战项目的经验总结,其实更是一次弯路或者错误记录吧,方便现在或以后遇到同样问题的人. 下面开始总结. 先来说说我的功能需求: 我要在页面上显示设备所在的城市名称,但是设备实体类中对应的字段是CityId,也就是城市表所对应的Id主键,但是设备实体类所对应的Dto,映射链所对应的属性是City.…
初次尝试使用Castle Windsor实现依赖注入DI,或者叫做控制反转IOC. 参考: https://github.com/castleproject/Windsor/blob/master/docs/README.md http://terrylee.cnblogs.com/archive/2006/04/17/377018.html 依赖注入就是基于接口interface编程,而不是具体的类,实现松耦合,易于单元测试,将接口定义为服务,具体实现某一服务的类为组件. Windsor有一个…
找过一些Windsor教程的文章,博客园上TerryLee有写了不少,以及codeproject等也有一些例子,但都讲的不太明了.今天看到Alex Henderson写的一个系列,非常简单明了.下面是主要的内容Part 1 - Simple configurationPart 2 - Array ConfigurationPart 3 - Dictionary configurationPart 4 - Switching configurationsPart 5 - Configuration…
Castle Windsor 项目中快速使用 新建项目如下: 一个模型类,一个接口,一个实现方法.我的目的很明确就是在UI层通过Castle 调用数据访问层的方法. 添加项目引用 CastleDemo.DataAccess 引用 CastleDemo.Domain CastleDemo.WebUI 引用 CastleDemo.Domain(不需要引用CastleDemo.DataAccess) 安装组件 CastleDemo.DataAccess和 CastleDemo.Domain 都需安装 …
Windsor是Castle的IOC框架.需要用到两个dll(Castle.Core.dll和Castle.Windsor.dll). 1.接口以及接口实现类: public interface ITest { int Add(int a, int b); } public class Test:ITest { public int Add(int a, int b) { return a + b; } } 2.创建自定义类WindsorInstaller,继承IWindsorInstaller…