Je teste Windsor.Castle pour la résolution de mes composants génériques.Enregistrement de composants génériques dans Windsor.Castle: différence de comportement entre Type.GetType et typeof
Je suis pour configurer mon conteneur avec des lignes comme les suivantes:
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"));
Comme vous pouvez le voir ImplementedBy est fourni un type, soit par Type.GetType() ou par typeof().
Maintenant que je testais, j'ai remarqué que parfois le service enregistré n'était pas la classe d'implémentation, mais l'interface. Message d'erreur: Une erreur lors de la création de l'instance ICommand ... est abstraite. (chaîne de type complète supprimée)
Est-il possible que lors de l'utilisation de Type.GetType(), il arrive parfois de retourner une interface pour une chaîne de type donnée, même si la chaîne de type donnée est la définition de type de classe?
peut ainsi
Type.GetType("WCExp.Test.GetAllCommand`2")
retour l'interface ICommand <,> ...?
Cela se produisait pour les classes résidant dans un assembly dépendant. Pour les classes dans le même ensemble que je la configuration de ce problème ne se présentait pas
sources complètes (encore?): https://github.com/schwarzie2478/WindsorCastleExperiments