Erstellen von generischen Methode-und mit dem type-parameter

Ich habe diese Methode, die ein Objekt Fabrik:

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);
}

Nun, ich möchte noch weiter gehen und die Notwendigkeit beseitigen, für "serviceInterface" - parameter, aber mein problem ist - ich weiß nicht, wie Sie vergleichen Sie Typ-parameter T, um eine Schnittstelle: tut

T.Equals(typeof(ILookupService)) 

gibt compiler-Fehlermeldung: 'T' a "- Typ-parameter', das gilt nicht in den gegebenen Kontext.

Irgendwelche Ideen, wie könnte ich vergleichen, einen parameter vom Typ einer Schnittstelle?

Danke,
Andrej

InformationsquelleAutor Andrey | 2010-02-17
Schreibe einen Kommentar