Ich teste Windsor.Castle für die Auflösung meiner generischen Komponenten.Registrieren generischer Komponenten in Windsor.Castle: Unterschied im Verhalten zwischen Type.GetType und typeof
ich meine Container mit Zeilen wie die folgende Konfiguration:
container.Register(Component.For(typeof(ICommand<,>)).ImplementedBy(Type.GetType("WCExp.Test.GetAllCommand`2")).Named("GetAllCommand"));
container.Register(Component.For(typeof(ICommand<,>)).ImplementedBy(typeof(WindsorCastleExperiments.Implementations.GetAllCommand<,>)).Named("GetAllCommandOriginal"));
Wie Sie ImplementedBy ein Typ vorgesehen ist, sehen können, entweder durch Type.GetType() oder durch typeof().
Jetzt, während ich testete, bemerkte ich, dass manchmal der registrierte Dienst nicht die implementierende Klasse war, sondern die Schnittstelle.
Fehlermeldung: Fehler beim Erstellen der Instanz ICommand ... ist abstrakt. (keine vollständige Zeichenfolge)
Ist es möglich, dass bei der Verwendung von Type.GetType() manchmal eine Schnittstelle für eine gegebene Zeichenfolge zurückgegeben werden kann, auch wenn die angegebene Zeichenfolge die Klassentypdefinition ist?
So kann
Type.GetType("WCExp.Test.GetAllCommand`2")
Rückkehr der Schnittstelle ICommand <,> ...?
Dies geschah für die Klassen, die sich in einer abhängigen Baugruppe befanden. Für die Klassen in derselben Assembly wie ich dieses Problem wurde die Konfiguration nicht selbst präsentieren hat
Voll Quellen (noch?): https://github.com/schwarzie2478/WindsorCastleExperiments