2011-07-18 16 views
2

thisの質問を解決するために、spring.netの設定がどのように機能するかを見ていきます。Spring.net - PropertyRetrievingFactoryObject - プロパティがnull

根本的な問題は、このスニペットから来ている:

ユーザーがログインしていない場合には
<object name="someObject" singleton="false" type="SomeType.someObject, SomeAssembly"> 
    <constructor-arg name="authSession"> 
    <object type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core"> 
     <property name="TargetObject" ref="AuthSessionManager" /> 
     <property name="TargetProperty" value="CurrentAuthSession" /> 
    </object> 
    </constructor-arg> 
</object> 

AuthSessionManager.CurrentAuthSessionはnullになります。その場合、Spring.NETは例外をスローします: "ファクトリオブジェクトはnullオブジェクトを返しました"。

この場合、nullオブジェクトが許容できることをSpringにどのように伝えることができますか?

答えて

3

あなたは、コンストラクタ引数にexpression to retrieve an object from the spring contextを使用することができ、何かのように:

<object name="someObject" singleton="false" 
     type="SomeType.someObject, SomeAssembly"> 
    <constructor-arg name="authSession" 
        expression="@(AuthSessionManager).CurrentAuthSession" /> 
</object> 

式には、あなたが何かを伝える春する必要はありませんので、nullに評価することが許可されています。 これは単純なケース(ネストされたコンテキストなし)で私のために働いていました。

+0

私はそれを別の方法で解決しましたが、これに戻り、テストしました。ありがとう! :D – Jonas

関連する問題