J'ai créé cette méthode qui est une usine d'objet:Création méthode générique et en utilisant le paramètre de type
public static T GetService<T>(T serviceInterface)
{
if (serviceInterface.Equals(typeof(IMemberService)))
{
return (T)(object)new MemberService();
}
else if (serviceInterface.Equals(typeof(ILookupService)))
{
return (T)(object)new LookupService();
}
throw new ArgumentOutOfRangeException("No action is defined for service interface " + serviceInterface.Name);
}
Maintenant, je voudrais aller plus loin et éliminer le besoin de paramètre « serviceInterface », mais mon problème est - Je ne sais pas comment comparer les paramètres de type T à une interface: faire
T.Equals(typeof(ILookupService))
donne erreur du compilateur: « T » est un « paramètre de type », qui est pas valable dans le contexte donné.
Des idées comment pourrais-je comparer un paramètre de type à une interface?
Merci, Andrey
Vous pouvez choisir la valeur de la variable serviceInterface comme ceci -> https://stackoverflow.com/a/44114122/1580548 – ddagsan