Enterprise Library 4.0中的依賴注入容器(Unity)預覽
概述
之前我曾發過一篇Enterprise Library 4.0開發計劃中提到微軟在Enterprise Library 4.0將加入依賴注入容器,暫定名為DIAB,現在微軟終於給它起了個正式的名字Unity,難道是“團結”的意思?:),在Unity最終將以兩種形式釋出:獨立的容器元件和作為Enterprise Library 4.0的一部分,用微軟的話說“它是一個輕量級的、可擴充套件的依賴注入容器”,在ASP.NET MVC Framework推出後引起了業界極大的討論“MS MVC框架漩渦中的MonoRail未來”,不知道Unity推出之後會不會再出現一場“Unity漩渦中的Castle Windsor未來”或者“Unity漩渦中的Spring.Net未來”的討論。這裡先帶您提前預覽一下Unity。
Unity預覽
在Unity中將提供Register方法來註冊物件對映,使用Get方法獲得物件的例項,基本API如下:
public class UnityContainer : IDisposable { // getting objects public T Get(string key) { } public IEnumerable GetAll () { } // type mapping public UnityContainer Register (string key) where TTo : TFrom { } // singleton support public UnityContainer SetSingleton (string key) { } // support for registering existing objects public UnityContainer RegisterInstance (T existing, string key, bool overload) { } // running existing objects through the container public T BuildUp (T existing, string key) { } }
典型使用
在Unity中,我們可以像如下程式碼這樣加入元件:
UnityContainer container = new UnityContainer() .Register獲取物件例項:() .Register ();
ISomething some = container.Get();
用過Castle的朋友一定還記得,這似乎和Castle中的IOC容器非常像,在Castle的IOC容器中加入元件:
IWindsorContainer container = new WindsorContainer( new XmlInterpreter("http://www.cnblogs.com/BasicUsage.xml") ); container.AddComponent( "txtLog", typeof(ILog), typeof(TextFileLog) ); container.AddComponent( "format", typeof(ILogFormatter), typeof(TextFormatter) );
獲取物件例項:
ILog log = (ILog)container["txtLog"];
二者是不是有幾分相似呢?不知道Unity會給我們帶來哪些驚喜?
結束語
在ASP.NET MVC Framework推出後引起了業界極大的討論“MS MVC框架漩渦中的MonoRail未來”,不知道Unity推出之後會不會再出現一場“Unity漩渦中的Castle Windsor未來”或者“Unity漩渦中的Spring.Net未來”的討論。不管怎麼說,微軟推出Unity,我們又多了一種可供選擇的依賴注入容器。
參考:DIAB is now Unity
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12184684/viewspace-531834/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 微軟Enterprise Library 4.0將支援依賴注入微軟依賴注入
- C# Unity依賴注入C#Unity依賴注入
- IOC容器和依賴注入依賴注入
- PHP 依賴注入容器實現PHP依賴注入
- PHP 依賴注入容器 Pimple 筆記PHP依賴注入筆記
- .NET之預設依賴注入依賴注入
- 淺析依賴倒轉、控制反轉、IoC 容器、依賴注入。依賴注入
- 【譯】深入研究Laravel的依賴注入容器Laravel依賴注入
- C#中的依賴注入和IoC容器C#依賴注入
- 服務容器(自己總結)依賴注入依賴注入
- 依賴注入?依賴注入是如何實現解耦的?依賴注入解耦
- PHP中的服務容器與依賴注入的思想PHP依賴注入
- ASP.NET Core中的依賴注入(2):依賴注入(DI)ASP.NET依賴注入
- angular依賴注入Angular依賴注入
- XUnit 依賴注入依賴注入
- Struts 依賴注入依賴注入
- 依賴倒置(DIP)與依賴注入(DI)依賴注入
- 又一個強大的PHP5.3依賴注入容器PHP依賴注入
- 又一個「簡單」的 PHP5.3 依賴注入容器PHP依賴注入
- Yadi是基於Java8的依賴注入容器Java依賴注入
- spring 的依賴注入Spring依賴注入
- JavaScript裡的依賴注入JavaScript依賴注入
- spring原始碼解析之IOC容器(三)——依賴注入Spring原始碼依賴注入
- Asp.net core自定義依賴注入容器,替換自帶容器ASP.NET依賴注入
- [譯] 依賴注入?? 哈??依賴注入
- Angular 依賴注入原理Angular依賴注入
- .Net Core — 依賴注入依賴注入
- 理解 Angular 依賴注入Angular依賴注入
- Spring依賴注入Spring依賴注入
- Spring依賴注入---Spring依賴注入
- 依賴注入系列教程依賴注入
- 我看依賴注入依賴注入
- webapi - 使用依賴注入WebAPI依賴注入
- 依賴注入是否值得?依賴注入
- Container 一款為 Go 開發的依賴注入容器AIGo依賴注入
- 類的反射和依賴注入反射依賴注入
- [譯]javascript中的依賴注入JavaScript依賴注入
- Spring 依賴注入的理解Spring依賴注入