2009-07-24 8 views
4

J'ai utilisé le conteneur IOC de Spring.Net et je peux l'utiliser pour injecter des propriétés de type IList et même IList<T> mais je suis un peu perplexe quant à la façon d'injecter un propriété c'est du type string[].Propriété Injecter une matrice avec Spring.Net

Il ne semble pas y avoir d'élément <array> défini dans les XSD et l'utilisation de <list> <value> </list> ne fonctionne pas non plus.

Si quelqu'un pouvait poster le xml je besoin d'injecter à l'aide d'un tableau pour une propriété, il serait très apprécié

Répondre

7

Comme mentionné here in the documentation vous pouvez injecter un tableau de chaînes comme une chaîne délimitée par des virgules (pas sûr de ce que la syntaxe est d'échapper des virgules réelles dans les chaînes si nécessaire). En d'autres termes, votre config ressemblerait à quelque chose comme ceci:

<object id="MyObject" type="Blah.SomeClass, Blah" > 
    <property name="StringArrayProperty" value="abc,def,ghi" /> 
</object> 

construire manuellement une string[] avec la syntaxe suivante fonctionne également, si vous avez besoin quelque chose de plus complexe (par exemple, si vous cherchez les valeurs individuelles à partir d'une autre référence plutôt que de les coder en dur):

<object id="TestStrArr" type="string[]" > 
    <constructor-arg value="3" /> 
    <property name="[0]" value="qwe" /> 
    <property name="[1]" value="asd" /> 
    <property name="[2]" value="zxc" /> 
</object> 

<object id="MyObject" type="Blah.SomeClass, Blah" > 
    <property name="StringArrayProperty" ref="TestStrArr" /> 
</object> 
Questions connexes