Je suis en train de faire ce qui suit et à défaut:résolution polymorphes des paramètres génériques dans l'unité registerType
class base {}
class derived1 : base {}
class derived2 : base {}
interface itr<t>
where t : class, base
{}
class c1: itr<derived1>
{}
class c2 : itr<derived2>
{}
// Les 2 inscriptions suivantes échouent:
_unityContainer.RegisterType<itr<base>, c1>("c1");
_unityContainer.RegisterType<itr<base>, c2>("c2");
L'erreur que je reçois est que le le deuxième paramètre dans les enregistrements ci-dessus ne peut pas être classé dans le premier paramètre et cet enregistrement n'est pas valide. Des suggestions sur comment je peux faire cela?
Je dois faire ce qui précède au lieu de m'enregistrer avec les classes derived1 ou derived2 en tant que paramètres génériques car pendant la résolution, je ne veux pas connaître le type dérivé exact que je suis en train de résoudre. Je veux seulement travailler avec des méthodes de type de base polymorphiquement.