2008-11-06 9 views
1

Selon le fichier d'aide fourni avec le framework Spring.NET, vous pouvez injecter une dépendance définie dans le fichier local en utilisant une balise 'idref' avec un attribut 'local' .Problème Spring.NET avec la balise <idref> dans la configuration

J'ai essayé de faire ceci sans succès et j'espérais que quelqu'un avait l'expérience pour m'aider. Ci-dessous j'ai un extrait de la config où je le passe comme argument constructeur, mais j'ai aussi essayé de le définir comme une propriété. Les deux méthodes semblent donner la même erreur.

<object id="theTargetObject" type="TestClassLibrary.TargetObject, TestClassLibrary"/> 

<object id="theClientObject" type="TestClassLibrary.ClientObject, TestClassLibrary"> 
    <constructor-arg name="myClass"> 
     <idref local="theTargetObject"/> 
    </constructor-arg> 
</object> 

'Erreur de création spring.root' contexte: la création d'objet d'erreur avec le nom 'theClientObject' défini dans 'Fichier [C: \ Test \ TestApp \ bin \ Debug \ my.config.xml]': dépendance Unsatisfied exprimé par l'argument constructeur avec l'index 0 de type [TestClassLibrary.TargetObject]: Impossible de convertir la valeur de l'argument constructeur [theTargetObject] en le type requis [TestClassLibrary.TargetObject]: Impossible de convertir la valeur de propriété de type [System.String] en type requis [TestClassLibrary. TargetObject] pour la propriété ''.

Répondre

2

je suppose que Fem était sur la bonne voie, mais il mélangé accidentially quand coller le snippet.You sont à la recherche de la <ref> element:

<object id="theTargetObject" type="TestClassLibrary.TargetObject, TestClassLibrary"/> 
<object id="theClientObject" type="TestClassLibrary.ClientObject, TestClassLibrary"> 
    <property name="myClass"> 
      <ref local="theTargetObject"/> 
    </property> 

la notation abrégée pour cela est:

<object id="theClientObject" type="TestClassLibrary.ClientObject, TestClassLibrary"> 
    <property name="myClass ref="theTargetObject"/> 

HTH, Erich

+0

Oops, bien repéré - je aurais dû utiliser cela - http://www.springframework.net/docs/1.2.0-RC1/reference/html/vsnet.html#vsnet-config- section :) – gef