1

PropertyRetrivingFactoryObject を使用するよりも、Spring.NET 構成ファイルで設定 (Visial Stidio 設定エディターによって生成された) を使用するためのより良い方法はありますか?

  <object id="myUri" type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core">
    <property name="TargetObject">
      <object type="Properties.Settings, MyAssembly">
      </object>
    </property>
    <property name="TargetProperty" value="Default.MyUri" />
  </object>

  <object name="..." type="...">
    <property name="Uri">
      <ref object="myUri" />
    </property>
  </object>

?

すべての設定でこれを行うのは適切ではありません...

4

1 に答える 1

1

まず、URL を Spring.NET 構成ファイルに入れてみませんか? アプリケーションを構成する方法が複数あると、少し混乱する可能性があります。Web 参照を追加したためにこのファイルが Visual Studio によって生成された場合は、Web 参照の「Url Behavior」プロパティを「Dynamic」から「Static」に変更する必要があります。次に、VS が生成するすべてのもの、設定ファイル、および App.config/Web.config の構成コードを削除できます。プロキシを構成するには、プロキシをコンテナーに追加し、DI を使用して Url プロパティを挿入します。

とにかく、Spring Expression 言語でやりたかったことを達成できます。

<object name="..." type="...">
  <property name="Uri" expression="T(Properties.Settings, MyAssembly).Default.MyUri">
</object>

別の解決策は、 IVariableSource インターフェースで VariablePlaceholderConfigurer コンポーネントを使用することです: http://www.springframework.net/doc-latest/reference/html/objects.html#objects-variablesource

<object type="Spring.Objects.Factory.Config.VariablePlaceholderConfigurer, Spring.Core">
   <property name="VariableSources">
      <list>
         <object type="MyCustomImplementationVariableSource, MyAssembly"/>
      </list>
   </property>
</object>

<object name="..." type="...">
  <property name="Uri" value="${MyUri}"/>
</object>

MyCustomImplementationVariableSource は、必要な場所から変数を解決する IVariableSource の実装です (たとえば、Settings クラスから)。

  • ブルーノ
于 2009-07-31T12:29:20.213 に答える