1 votes

Problème de Spring.NET avec la balise <idref> dans la configuration

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'.

J'ai essayé de le faire sans succès et j'espérais que quelqu'un avait l'expérience nécessaire pour m'aider.

Ci-dessous, j'ai un extrait de la configuration où je le passe comme argument de constructeur, mais j'ai aussi essayé de le définir comme propriété. Les deux méthodes semblent produire 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 lors de la création du contexte 'spring.Root' : Erreur lors de la création d'un objet avec le nom 'theClientObject' défini dans 'file [ C:\Test\TestApp\bin\Debug\my.config.xml ]' : Dépendance non satisfaite exprimée par l'argument du constructeur avec l'index 0 du type [TestClassLibrary.TargetObject] : Impossible de convertir la valeur de l'argument du constructeur [theTargetObject] en type requis [TestClassLibrary.TargetObject] : Impossible de convertir la valeur de la propriété de type [System.String] en type requis [TestClassLibrary.TargetObject] pour la propriété ''.

2voto

Erich Eichinger Points 838

Je pense que Gef était sur la bonne voie mais qu'il s'est accidentellement trompé en collant le bout de phrase. élément <ref> :

<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 ceci est :

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

hth, Erich

1voto

intangible02 Points 198

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X