2011-07-04 13 views
1

Entity Framework 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を使用しています(Aあたりasp.netでのリクエストの収集)。

ObjectContextTypeConverter.ConvertFromメソッドは、Unity構成がGlobal.asaxファイルのApplication_Startメソッドにロードされている場合に1度だけ呼び出されます。しかし、Unityを使ってインタフェースを解決しようとすると、ConvertFromメソッドは再び呼び出されません。

この問題を解決する方法はありますか?

答えて

0

これは値として設定しているためです。

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

と射出工場内を通じてコン​​テキストを注入:あなたは依存関係としてそれを設定することができ

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

あなたが実際には、<プロパティ名=「MyObjectContext」/>これを短縮することができます。何も指定されていなければ、依存関係が仮定されます。 –

+0

クール、ありがとう! :) –

関連する問題