2011-07-04 62 views
1

我想在存儲庫類中設置實體框架ObjectContext - ObjectContext是存儲庫的一個屬性。使用Unity XML設置屬性

我使用統一XML配置:

<register type="IUsersRepository" mapTo="SqlUsersRepository" > 
    <property name="MyObjectContext"> 
    <value value="Per-Request" typeConverter="ObjectContextTypeConverter" /> 
    </property> 
</register> 

的ObjectContextTypeConverter解釋屬性的值 - 在這種情況下「每請求」 - 和使用存儲在HttpContext.Current.Items一個ObjectContext的(每請求在asp.net中收集)。

在Global.asax文件的Application_Start方法中加載Unity配置時,ObjectContextTypeConverter.ConvertFrom方法僅調用一次。但是,當我嘗試使用Unity來解析接口時,ConvertFrom方法不會再被調用。

有沒有辦法解決這個問題?

回答

0

原因是你將它設置爲一個值。您可以設置它作爲一個依賴:

<property name="MyObjectContext"> 
    <dependency /> 
</property> 

,並通過在注塑廠注入方面:

Container.RegisterType<ObjectContext>(
    new InjectionFactory(c => GetTheContextInstance())); 
+0

實際上,你可以縮短這只是<屬性名=「MyObjectContext」 />。如果沒有其他指定,則假定依賴關係。 –

+0

很酷,謝謝! :) –