.Net下实现可扩展的编程方法简述

2019-09-04 23:47| 发布者: |

ioc控制反转是一个重要的面向对象的法则用来解决耦合问题。 控制反转还有一个名字叫做依赖注入。ioc中最基本的技术就是interface + reflection, 反射 编程。 。 ioc 澳门皇冠真人网站容器的职责是对象的创建,核心是对象的生命周期管理,就像一个大工厂,对象 托管 在里面。模式的源头都是 solid。利用ioc 解耦的核心是:面向抽象,而非实现。即我们只需要关注某一个对象能做什么,怎么用;不需要关注它怎么来,更不需要我们来管理它。
1,unity
unity是enterprise library 4.0开始加入的一个轻量级的、可扩展的依赖注入容器。
unity模块包括了下面的特点
? 提供了一个创建对象,以及依赖的对象的方法
? 提供的registertype方法用来在容器中注册类型和映射,resolve方法可以返回任何依赖对象的实例。
? 提供控制反转ioc功能,通过预先配置注入类的对象来实现。你可以在构造函数中指明一个类或者接口,或者是使用attribute的属性注入,和方法调用注入。
? 支持容器继承,容器可以有子容器,支持对象从子容器传递到父容器中。
? 可以从标准的配置文件中读取信息,例如xml文件
? 在运行时可以配置和改变依赖关系。
? 对类的定义没有任何要求。在类上不需要添加attribute,在类声明中没有任何限制。
? 支持自定义容器,例如,你可以在方法中实现额外的对象构造,和容器功能,例如容器的缓存功能。












三种注入方式:
?构造器注入:ioc容器会智能地选择选择和调用适合的构造函数以创建依赖的对象。如果被选择的构造函数具有相应的参数,ioc容器在调用构造函数之前会自定义创建相应参数对象;
?属性注入:如果需要使用到被依赖对象的某个属性,在被依赖对象被创建之后,ioc容器会自动初始化该属性;
? 方法注入:如果被依赖对象需要调用某个方法进行相应的初始化,在该对象创建之后,ioc容器会自动调用该方法。
定义一个接口:





 public interface ilogger
 void write;
 }

实现接口用来扩展应用程序:

 public class flatfilelogger : ilogger
 public void write
 console.writeline);
 console.writeline
 ilogger logger = getlogger;
 logger.write;
 /// 
 /// 加载日志处理对象
 /// 
 /// 
 public static ilogger getlogger
 //初始化一个容器
 iunitycontainer container = new unitycontainer;
 //获取unity配置
 unityconfigurationsection config = configurationmanager.getsection as unityconfigurationsection;
 unityconfigurationsection.currentsection.configure;
 //向容器中注册对象
 ilogger defaultlogger = container.resolve( logger 
 return defaultlogger;
 }

扩展配置:

 
<
>
关于我们
AB模版网成立于2014年,我们是一家专注用户体验设计开发与互联网品牌建设的设计公司,创立至今为2000多位客户提供了创新与专业的设计方案。设计服务范围包括:交互原型设计、产品视觉设计、网站设计与开发建设、移动及软件产品界面设计、图标设计、品牌及平面设计等。

联系我们

13588889999服务时间:9:00-18:00)

admin@adminbuy.cn

官方微信官方微信

部门热线

前   台:13588889999
业务部:13588889999
客服部:13588889999
技术部:13566667777
人事部:13566667777

咨询电话13588889999 返回顶部
返回顶部