2010-04-20 3 views
0

J'ai une classe que je veux instancier à travers le château en configuration.château windsor conteneur ne pas câblage propriétés correctement

public class MyMappings : IMappings 
{ 
    Mapping FirstMapping { get; set; } 
    Mapping SecondMapping { get; set; } 
    OtherType ThirdMapping { get; set; } 
    OtherType FourthMapping { get; set; } 
    Mapping FifthMapping { get; set; } 
    OtherType SixMapping { get; set; } 
} 

Dans ma configuration, je donne les résultats suivants:

< component id="mymappings" type="MyMappings, MyAssmebly" > 
    < parameters> 
     < firstMapping>${anothercomponentIDForCompomentOftypeMapping}< /firstMapping> 
    < /parameters> 
< /component> 

Le problème que je suis face est que est d'attribuer la même valeur à toutes les propriétés du même type, en ignorant complètement le nom du paramètre. Ces propriétés sont facultatives, je veux juste initialiser la valeur pour l'un d'entre eux.

Merci,

+0

formater les blocs s'il vous plaît code –

Répondre

0

Si vous avez des composants de type Mapping ou othertype enregistré dans le conteneur, Windsor les injecter dans vos dépendances en option. Ce que vous avez fait dans votre configuration XML est un remplacement de service, c'est-à-dire que vous avez sélectionné un composant spécifique pour un paramètre spécifique, mais cela ne signifie pas que d'autres paramètres ne seront pas injectés.

Si vous souhaitez éviter d'injecter des dépendances facultatives, voir this question.

+0

je veux encore les autres dépendances facultatives à injection de configuration, mais pas basée uniquement sur le type .. que lorsque le nom du paramètre correspond à la configuration .. Certaines applications juste un intialize propriété, tandis que d'autres vont intialiser plus ... Toute propriété qui n'est pas explicitement initialisée en configuration doit rester nulle. – Damian

Questions connexes