1

我目前正在使用spring.net進行依賴注入.net項目c#。我正在通過xml配置文件配置我的spring。在這我創建我的對象等用spring.net創建一個字符串對象

我想創建一個常量對象,在我的xml文件中的字符串值。這是可能的嗎?如果是這樣,我怎麼能做到這一點?我想繼續在多個地方使用這個值,因此我正在採用這種方法。

回答

4

MyString的是單身,因爲春天的對象是單身默認

<object id="MyString" type="System.String" factory-method="Copy"> 
    <constructor-arg index="0"> 
    <value>SomeStringValue</value> 
    </constructor-arg> 
</object> 

下面是如何引用MyString

<object id="SomeObj" type="ExampleSpring.SomeObj, ExampleSpring"> 
    <property name="Str" ref="MyString" /> 
</object> 
+0

+1,從未想過這個 – Marijn

0

我會建議封裝這個字符串作爲一個類的只讀字段,然後用Spring(或任何其他讀者使用的IoC)註冊該類作爲單一作用域。

這樣做的好處是,您不必強制嘗試解析字符串對象;您解析包含該字符串的對象(從而允許您擁有許多這樣的包含字符串的對象)。

如果您確實想要,可以在註冊對象時使用constructor-arg標記定義參數特定的注入值;這樣,當解析DatabaseObject時,當Spring遇到名爲「connectionString」的構造函數參數時,它應該提供您在XML中指定的特定文字。更多閱讀Rose India

0

其他兩個答案給出合理的解決方法在配置字符串對象的容器。

如果您希望在配置文件中重新使用字符串常量,那麼您最好使用VariablePlaceholderConfigurer。然後,你可以寫喜歡你的配置文件:

<object id="JohnUsingVariableSource" 
     type="XmlConfig.StringInjection.Person, XmlConfig"> 
    <property name="Name" value="${JohnsFullName}" /> 
</object> 

價值爲${JohnsFullName}佔位符可以從許多variable sources配置如的app.config一個appSettings部分或Java樣式屬性文件。