Feedback

C# - Überprüfen ob Objekt ein Interface implementiert

Veröffentlicht von am 4/4/2011
(1 Bewertungen)
Die folgende statische Methode überprüft, ob das übergebene Objekt das übergebene Interface implementiert.
/// <summary>
/// Überprüft, ob ein Objekt ein bestimmtes Interface implementiert.
/// </summary>
public static bool IsInterfaceImplemented(object obj, Type interfaceType)
{
    if (obj != null)
    {
        return obj.GetType().FindInterfaces(new TypeFilter(
            delegate(Type type, object filter) { return (type.Name == ((Type)filter).Name)
                && (type.Namespace == ((Type)filter).Namespace); }), interfaceType).Length == 1;
    }

    return false;
}
Abgelegt unter interface, implementiert, implement.

2 Kommentare zum Snippet

Peter42 schrieb am 4/4/2011:
Also ich würde es so implementieren:
static bool IsInterfaceImplemented<I>(object obj) where I : class
{
return obj as I != null;
}
hackman schrieb am 4/4/2011:
ok die funktion von Peter42 wäre eine möglichkeit, allerdings ist in der ursprungsfunktion ja ein Type argument übergeben. aber hierzu, rate mal für was es die Type.IsInstanceOfType Type.IsAssignableFrom gibt?
 

Logge dich ein, um hier zu kommentieren!