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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- IOC容器和依賴注入依賴注入
- PHP 依賴注入容器實現PHP依賴注入
- .NET之預設依賴注入依賴注入
- 【譯】深入研究Laravel的依賴注入容器Laravel依賴注入
- C#中的依賴注入和IoC容器C#依賴注入
- 淺析依賴倒轉、控制反轉、IoC 容器、依賴注入。依賴注入
- 服務容器(自己總結)依賴注入依賴注入
- 依賴注入?依賴注入是如何實現解耦的?依賴注入解耦
- PHP中的服務容器與依賴注入的思想PHP依賴注入
- spring 的依賴注入Spring依賴注入
- angular依賴注入Angular依賴注入
- XUnit 依賴注入依賴注入
- spring原始碼解析之IOC容器(三)——依賴注入Spring原始碼依賴注入
- SpringBoot啟動流程分析(六):IoC容器依賴注入Spring Boot依賴注入
- 又一個強大的PHP5.3依賴注入容器PHP依賴注入
- Container 一款為 Go 開發的依賴注入容器AIGo依賴注入
- Spring的依賴注入的方式Spring依賴注入
- OOD、DIP、IOC、DI、依賴注入容器(即 控制反轉容器,IOC Container)依賴注入AI
- Asp.net core自定義依賴注入容器,替換自帶容器ASP.NET依賴注入
- 我看依賴注入依賴注入
- 依賴注入系列教程依賴注入
- Spring 依賴注入 DISpring依賴注入
- 理解 Angular 依賴注入Angular依賴注入
- Abp vNext 依賴注入依賴注入
- Sping-依賴注入依賴注入
- Spring IOC——依賴注入Spring依賴注入
- [譯] 依賴注入?? 哈??依賴注入
- Angular 依賴注入原理Angular依賴注入
- .Net Core — 依賴注入依賴注入
- 類的反射和依賴注入反射依賴注入
- [譯]javascript中的依賴注入JavaScript依賴注入
- Golang 依賴注入設計哲學|12.6K 🌟 的依賴注入庫 wireGolang依賴注入
- 一文秒懂什麼是依賴注入, Ioc容器依賴注入
- 【.NET6+WPF】WPF使用prism框架+Unity IOC容器實現MVVM雙向繫結和依賴注入框架UnityMVVM依賴注入
- 關於依賴注入(typescript)依賴注入TypeScript
- 深入淺出依賴注入依賴注入
- AngularJS 4(六)【依賴注入】AngularJS依賴注入
- .NET8 依賴注入依賴注入
- Spring.Net 依賴注入Spring依賴注入