Pourquoi suis-je une exception est levée à partir de Spring.NET sur l'appel à ContextRegistry.GetContext()?
Même si la solution est tellement évidente que je devrais avoir jamais posté, je pars comme un rappel et un point de référence utile pour les autres.
J'ai de la suite dans mon application.fichier de configuration:
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
</sectionGroup>
Suivie par:
<spring>
<context>
<resource uri="config://spring/objects"/>
</context>
<objects xmlns="http://www.springframework.net">
<object name="mediaLibrary" type="AlbumLibraryWPF.AlbumLibrary, AlbumLibraryWPF"/>
</objects>
</spring>
Puis dans mon application j'ai:
using Spring.Context;
using Spring.Context.Support;
public partial class AlbumChecker : Window
{
private DataTable dataTable;
private Library library;
private Thread libraryThread;
public AlbumChecker()
{
InitializeComponent();
CreateToolTips();
IApplicationContext ctx = ContextRegistry.GetContext();
library = (Library)ctx.GetObject("mediaLibrary");
//Other initialisation
}
//Other code
}
Tout compile très bien, cependant, j'obtiens une exception est levée lors de l'appel à GetContext():
Error creating context 'spring.root': Could not load type from string value
'AlbumLibraryWPF.AlbumLibrary, AlbumLibraryWPF'.
J'ai vérifié le Spring.NET de la documentation et ne peut pas voir ce que je fais mal mais je lui ai clairement avoir quelque chose de mal, sinon il ne lèvent pas l'exception!
AlbumLibraryWPF
est l'espace de noms et AlbumLibraryWPF.AlbumLibrary
est le nom pleinement qualifié de la classe, je veux instancier. Je suppose que c'est ce que j'ai tort, mais ne vois pas comment.
OriginalL'auteur ChrisF | 2009-04-19
Vous devez vous connecter pour publier un commentaire.
Je me sens comme un fou.
C'était parce que j'avais pas réussi à copier le AlbumLibrary.dll pour le bon répertoire de sortie. Cela signifiait que le Printemps ne pouvais pas trouver elle - même après que j'ai corrigé le nom de l'assembly problème Kent mis en évidence.
OriginalL'auteur ChrisF
Le nom après la virgule doit être le nom de l'assemblage, ce qui n'est pas nécessairement le même que le nom d'espace de noms.
OriginalL'auteur Kent Boogaart
J'ai été faire cette erreur parce que, par erreur, il y avait une faute de frappe [!*2] dans l'app.fichier de configuration. Une fois que j'ai pris , l'erreur a disparu. quelque chose comme ceci
!*2
OriginalL'auteur user2704320
Vous devez utiliser tha
id
attribut au lieu dename
:Il doit aussi être
config://spring/objects
au lieu deconfig://spring/obects
.Vous devez vérifier que vous disposez d'un type appelé
AlbumLibrary
dansAlbumLibraryWPF
espace de noms défini dansAlbumLibraryWPF
assemblée.La deuxième était une faute de frappe - j'ai essayé de couper et coller du code, mais Firefox j'ai dit que je besoin d'un plugin pour être en mesure de voir le contenu - donc j'ai tapé de nouveau.
OriginalL'auteur Darin Dimitrov
Vous pouvez essayer de modifier le type. Le type="AlbumLibraryWPF.AlbumLibrary, AlbumLibraryWPF", le premier paramètre désigne l'espace de Noms et le second paramètre (après le point) signifie le Nom de la Solution.
type="namespace.type, assembly"
Même si j'apprécie l'effort - j'ai résolu le problème de 2 1/2 ans. Voir ma réponse à l'acceptation de la tique 😉
OriginalL'auteur jason
Puis essayez de lancer votre solution de nouveau.
OriginalL'auteur leo