Même si la solution est si évidente que je n'aurais jamais dû poster cela, je la laisse comme un rappel et un point de référence utile pour les autres.Pourquoi une exception est-elle levée depuis Spring.NET lors de l'appel de ContextRegistry.GetContext()?
J'ai ce qui suit dans mon fichier app.config:
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
</sectionGroup>
Suivi 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 assez bien, cependant, je reçois une exception levée lors de l'appel de GetContext():
Error creating context 'spring.root': Could not load type from string value
'AlbumLibraryWPF.AlbumLibrary, AlbumLibraryWPF'.
J'ai vérifié la documentation Spring.NET et ne peut pas voir ce que je fais mal - mais j'ai bien eu quelque chose de mal, sinon il ne soulèverait pas l'exception!
AlbumLibraryWPF
est l'espace de noms et AlbumLibraryWPF.AlbumLibrary
est le nom complet de la classe que je veux instancier. Je devine que c'est ce que j'ai tort, mais je ne vois pas comment.
J'ai eu exactement le même problème parce que les résultats de mon projet pointaient vers des endroits différents. Changer les projets pour sortir la DLL dans le même répertoire a tout fixé pour moi – lomaxx