最近patterns & practices團隊采用了一種新的文檔發布模式,就是Release版本的產品在發布的同時,將產品文檔同步到msdn中。這樣的話,如果你只想先了解下產品,或者先了解再決定是否安裝的話,可以先在msdn上浏覽,而不必安裝->看文檔->卸載。
在這裡,首先給出一個簡單使用Unity的簡單示例。通過示例,讓我們對Unity的使用有一個初步的認識和了解。在接下來的文章中,我會展開做詳細的介紹和分析。如果對Unity是還一點概念也沒有的話,可以參考我前面的兩篇文章:Unity(一):從ObjectBuilder說起,Unity(二):Unity是什麼?。
本示例主要展示了Unity在type mapping方面的一個基本應用。
使用Unity,最基本步驟有三步。
1.建立容器;
2.將接口與類的映射注冊到容器中;
3.從容器中解析出正確的對象。
為了接下來的說明,我們先編寫幾個後面需要的接口和類:
Step0.准備工作
ILogger接口:
ConsoleLogger類:
NullLogger類:
Step1.創建容器
在Unity中創建容器實例最簡單的方法是直接使用構造函數創建,如下代碼所示:
IUnityContainer container = new UnityContainer();
Step2.注冊接口映射
在Unity中提供了一組Register方法供我們在容器中注冊接口映射,如下代碼所示:
container.RegisterType<ILogger, ConsoleLogger>();
Step3.獲取對象實例
在Unity中提供了一組Resolve方法用以獲取對象實例,如下代碼所示:
ILogger logger = container.Resolve<ILogger>();
OK,就這麼簡單!
測試:
場景一:注冊一個ConsoleLogger作為ILogger的實現到容器中,然後從容器中解析ILogger的實現,並調用ILogger的Log方法。
結果:
場景二:注冊一個NullLogger作為ILogger的實現到容器中,然後從容器中解析ILogger的實現,並調用ILogger的Log方法。
結果: