Unity Application Block 3月12 发布的版本
时间:2022-04-25
本文章向大家介绍Unity Application Block 3月12 发布的版本,主要内容包括Unity Dependency Injection IoC Screencast、Unity Nested Containers - IUnityParentContainer and CreateChildContainer、Unity IoC - February 26 Weekly Drop - LifetimeManagers TearDown Extensions and IDisposable、Using Unity and the ASP.NET MVC Preview 2、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
3月12日,Unity 又发布了正式发布之前的版本,这个版本提供了安装程序.并且提供了一个依赖注入在实现方式:Setter injection 的配置API。之前发布的版本,属性注入需要用[Dependency], 这种设计Unity就侵入到你的组件了。现在可以通过ConfiguringInjection。
例如StoplightPresenter依赖于Stoplight 和StoplightSchedule ,可以在属性打标签[Dependency],也可以去掉这个标记,然后在UnityContainer内通过配置API配置:
public class StoplightPresenter
{
private Stoplight stoplight;
private StoplightSchedule schedule;
//[Dependency]
public Stoplight Stoplight
{
get { return stoplight; }
set { stoplight = value; }
}
// [Dependency]
public StoplightSchedule Schedule
{
get { return schedule; }
set { schedule = value; }
}
private IStoplightView view;
……
}
配置代码如下:
IUnityContainer container = new UnityContainer()
.AddNewExtension<SimpleEventBrokerExtension>()
.RegisterType<ILogger, TraceLogger>()
.RegisterType<IStoplightTimer, RealTimeTimer>();
container.Configure<InjectedMembers>()
.ConfigureInjectionFor<StopLight.Logic.Stoplight>(
new InjectionProperty("Logger")
);
container.Configure<InjectedMembers>()
.ConfigureInjectionFor<StoplightPresenter>(
new InjectionProperty("Stoplight"),
new InjectionProperty("Schedule")
);
Unity Application Block虽然发展时间不长,主要是基于从企业类库2.0开始出现的ObjectBuilder发展而来,下一个微软Enterprise Library的版本V4——将预置支持依赖注入。依赖注入将通过容器以独立或作为库的一部分来提供。需要更深入的学习Unity Application Block,可看园子里的TerryLee、doriandeng和overred的相关文章:
TerryLee的Unity Application Block
依赖注入容器Unity Application Block(1):快速入门
Enterprise Library 4.0中的依赖注入容器(Unity)预览
doriandeng的Unity
使用 Unity(二):配置 Unity 、读取配置信息和获取对象
使用 Unity Application Block(三):理解和使用依赖注入的键
overred的 ① NET Framework 依赖注入容器Unity Application Block(2):Unity的春天
Unity Dependency Injection IoC Screencast
Unity IoC and ASP.NET MVC Framework - Dependency Injection of Controllers
Unity Nested Containers - IUnityParentContainer and CreateChildContainer
Unity IoC - February 26 Weekly Drop - LifetimeManagers TearDown Extensions and IDisposable
Using Unity and the ASP.NET MVC Preview 2
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 9.30面试:AOP+事务+JDK动态代理与cglib区别+Spring的aop如何切换底层创建代理对象的方式
- R语言实现基因组的可视化
- Linux实用命令大全(附思维导图)
- 二叉搜索树与python中self参数理解
- 需要了解的Python编码解码知识
- 程序员必备技能之markdown写作
- Python列表操作最全面总结
- Python 0基础开发游戏:打地鼠(详细教程)VS code版本
- Python经典编程题:字符串替换
- Python字典操作总结
- 纯代码系列:Python实现验证码图片(PIL库经典用法用法,爬虫12306思路)
- Python正则表达式快速学习
- 如何上传项目到GitHub
- MySQL查询优化-基于EXPLAIN
- Python操作SQLite数据库