I created this method, which is a factory object:
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); }
Now I would like to go further and eliminate the need for the "serviceInterface" parameter, but my problem is I do not know how to compare a parameter of type T with an interface: do
T.Equals(typeof(ILookupService))
gives a compiler error: "T" is a "type parameter" that is not valid in this context.
Any ideas how I can compare the type parameter with the interface?
Thanks Andrew
generics c # interface
Andrey
source share