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<T>(string key) { } public IEnumerable<T> GetAll<T>() { } // type mapping public UnityContainer Register<TFrom, TTo>(string key) where TTo : TFrom { } // singleton support public UnityContainer SetSingleton<T>(string key) { } // support for registering existing objects public UnityContainer RegisterInstance<T>(T existing, string key, bool overload) { } // running existing objects through the container public T BuildUp<T>(T existing, string key) { } }
典型使用
在Unity中,我們可以像如下代碼這樣加入組件:
UnityContainer container = new UnityContainer()
.Register<ILogger, TraceLogger>()
.Register<ISomething, Something>();獲取對象實例: ISomething some = container.Get<ISomething>();
用過Castle的朋友一定還記得,這似乎和Castle中的IOC容器非常像,在Castle的IOC容器中加入組件:
IWindsorContainer container = new WindsorContainer( new XmlInterpreter("http://www.rzrgm.cn/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
支持TerryLee的創業產品Worktile
Worktile,新一代簡單好用、體驗極致的團隊協同、項目管理工具,讓你和你的團隊隨時隨地一起工作。完全免費,現在就去了解一下吧。
https://worktile.com
Worktile,新一代簡單好用、體驗極致的團隊協同、項目管理工具,讓你和你的團隊隨時隨地一起工作。完全免費,現在就去了解一下吧。
https://worktile.com

之前我曾發過一篇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。
浙公網安備 33010602011771號