在Unity中，從Unity 取得的例項為 Transient。如果你希望使用多執行緒方式，就需要在組成時使用lifecycle引數，這時候取出的元件就不再是同一個了。在Unity IOC中，它支援我們對於元件的例項進行控制，也就是說我們可以透明的管理一個元件擁有多少個例項。Unity IOC容器提供瞭如下幾種生命處理方式：
# Singleton：一個元件只有一個例項被建立，所有請求的客戶使用程式得到的都是同一個例項。
# Transient：這種處理方式與我們平時使用new的效果是一樣的，對於每次的請求得到的都是一個新的例項。
# Custom：自定義的生命處理方式。
我要增加一個Request的，一個Request請求一個例項，然後在Request結束的時候，回收資源。 增加一個Resquest級別的LifetimeManager，HttpContext.Items中資料是Request期間共享資料用的，所以HttpContext.Items中放一個字典，用型別為key，型別的例項為value。如果當前Context.Items中有型別的例項，就直接返回例項。 ObjectContext本身是有快取的，整個Request內都是一個ObjectContext，ObjectContext一級快取能力進一步利用。
有了這3個方法，就可以通過自定義LifetimeManager來實現從HttpContext中取值。
下面我們來實現Unity整合ADO.NET Entity Framework的工作：
1、利用Unity的依賴注入，ObjectContext會給我們生成3個建構函式，類似於下面的程式碼：
建構函式注入包含了二種情況，一種是類僅有一個建構函式時，Unity 可以進行自動注入；另一種情況是，類包含多個建構函式時，必須使用 Attribute 或者配置檔案指定注入時使用的建構函式。
ObjectContext有多個建構函式，而且ObjectContext的建構函式程式碼是Visual Studio 程式碼生成的，最好的選擇是使用配置檔案或者使用配置API指定注入時使用的建構函式。下面是使用配置API：
我們定義了一個Unity擴充套件，在擴充套件類EFContainerExtension 我們選擇了第一個建構函式以及ObjectContext使用RequestControlledLifetimeManager實現ObjectContext的生命週期管理。
2、實現RequestControlledLifetimeManager，完成對整個Request內都是一個ObjectContext的物件的生命週期管理：
寫一個HttpMoudle,在Request結束的時候回收資源。
3、web.config中的配置檔案內容如下，注意看紅色部分：