你的位置:首页 > ASP.net教程

[ASP.net教程]TypeC一个微软开发的超简单.NET依赖注入/IoC容器


控制反转(IoC,Inversion of Control)是由Martin Fowler总结出来的一种设计模式,用来减少代码间的耦合。一般而言,控制反转分为依赖注入(Dependency Injection)和依赖查找(Dependency Lookup)。大家用的更多的是依赖注入。

提供控制反转能力的框架通常也称之为IoC容器。在.NET世界中有各种各样的IoC容器,比较著名的就是来源于微软企业库(Enterprise Library)中的Unity,.NET中内置的扩展框架Managed Extensibility Framework(MEF)也可用于IoC,第三方开源的Autofac、Ninject、StructureMap也比较常用。顺带提一下,在ASP.NET 5中已经直接内置了一种依赖注入机制,也可以配置外部的IoC容器。

上面提到的IoC容器功能都很强大,但是有时候我们只需要一个轻量级的简单容器来做一些简单的事情(比如测试的时候使用)。所以,今天要介绍的是由微软员工Hanuk开源到Github上的一个超简单的IoC容器——TypeC。

TypeC除了可以解析接口或抽象基类到具体类外,还为实例类型实现了工厂方法。由于它实现的是单例模式,所以在一个AppDomain中只会存在一个容器实例。要使用非常简单:

//during the startup TypeContainer typeC = TypeContainer.Instance;typeC.Register<IList<string>, List<string>>();//deep inside the layers of the codevar list = typeC.GetInstance<IList<string>>();list.Add("test");

除了用代码来显式添加映射外,也支持从配置文件中加载映射。如:

//during the startupstring fileName = "TypeConfig.";TypeContainer tc = TypeContainer.Instance;tc.Reset();//the Load(fileName) will fail if types can't be resolved tc.Load(fileName);

具体映射编写方式,可以“阅读原文”来查看。同时也可以访问原文提到的源代码链接,来学习如何开发一个IoC容器。

原文地址:http://blogs.msdn.com/b/hanuk/archive/2015/03/28/typec-a-simple-net-injection-ioc-container.aspx




去江苏旅游要多少钱深圳去浙江旅游报价跟团去浙江旅游多少钱几月去浙江旅游最好去浙江的旅游团价格野三坡门票_河北野三坡门票_野三坡门票多少钱 红螺寺门票_红螺寺门票价格_红螺寺门票多少钱 北京动物园门票价格_北京动物园门票_北京动物园门票要多少钱 崇明岛在哪_崇明岛在哪里_崇明岛在哪个省 逛世园吃饭喝水大攻略 母亲节逛世园会消费风潮席卷而来 爱上澳洲 从海豚岛开始 小技巧除大油腻 到上海大观园如何乘车?上海大观园乘车路线? 萃溪江漂流开漂了吗?诸暨萃溪江漂流开漂时间? 昌乐坐车怎么到潍坊富华游乐园?昌乐到富华游乐园乘车路线? 上海大观园几个小时能玩完?上海大观园游玩需要多久? 深圳欢乐谷2015圣诞节免费是真的吗?欢乐谷圣诞节夜场有哪些活动? 元旦去三亚穿什么衣服好?元旦三亚天气怎么样? 2015龙凤山庄影视度假村圣诞节活动?东莞龙凤山庄圣诞平安夜好玩吗? 行摄发现美 大同历史之壮美 STW16NK60Z Datasheet STW16NK60Z Datasheet IXTQ14N60P Datasheet IXTQ14N60P Datasheet 2SK2953 Datasheet 2SK2953 Datasheet 丽江自助游多少钱 丽江自助游多少钱 丽江自助游多少钱 深圳莲花山公园好玩吗 深圳莲花山公园好玩吗 深圳莲花山公园好玩吗 樟木头观音山好玩吗 樟木头观音山好玩吗 樟木头观音山好玩吗