私のオリジナルの答えは受け入れられたが、今、私はより良い答えがあることと考えている:
あなたの表現は正しくない、それは次のようになります。
<object name="obj1" type="MyTestClass" depends-on="Paths">
<property name="cfg" expression="@(Paths)['cfgFile']"/>
</object>
@(object-id-here)
expression syntax to retrieve an object from the Spring context using an expressionを使用できます。
編集 - 以下は、私はあなたがあなたのapp.config
で利用できるようにするためにこのような構成を好むだろうと想像できる
を受け入れた答えです。その場合はPropertyPlaceholderConfigurer
を使用できます。 section 5.9.2.1の例を参照してください。あなたのケースでは
が、それはこのようになります:
<!-- app.config -->
<configuration>
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
</sectionGroup>
<section name="PathConfiguration" type="System.Configuration.NameValueSectionHandler"/>
</configSections>
<PathConfiguration>
<add key="cfgFile" value="config.txt"/>
<add key="otherCfgFile" value="otherconfig.txt"/>
</PathConfiguration>
<spring>
<context>
<resource uri="mycongfig.xml"/>
</context>
</spring>
</configuration>
そして、あなたのmyconfig.xml
は含まれています。代わりにapp.config
の、あなたが他のIResource
を使用することができます
<!-- ... -->
<object name="obj1" type="MyTestClass">
<property name="cfg" value="${cfgFile}"/>
</object>
<object name="appConfigPropertyHolder"
type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core">
<property name="configSections">
<value>PathConfiguration</value>
</property>
</object>
<!-- ... -->
注意を。
cfgFile
を設定にオブジェクトとして定義してから、このオブジェクトをvalue-ref
(この方法については、春のドキュメント5.3.2.4を参照)を使用して辞書で参照してください。しかし、これは(おそらく)あなたが探しているものではありません。なぜなら、あなたはプリミティブな値を注入しているからです(したがって、明示的にConfigurationObject
を作成する価値はありません)。
エラーメッセージの詳細を投稿できますか? – Marijn