Я создал этот метод, который является фабрикой объектов:
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);
}
Теперь я хотел бы пойти дальше и устранить необходимость в параметре "serviceInterface", но моя проблема в том, что я не знаю, как сравнить параметр типа T с интерфейсом: делать
T.Equals(typeof(ILookupService))
выдает ошибку компилятора: «T» является «параметром типа», который недопустим в данном контексте.
Есть идеи, как сравнить параметр типа с интерфейсом?
Спасибо,
Андрей