Prüfen ob eine Klasse ein bestimmtes Interface implementiert

Ab und an kann es vorkommen, dass man zur Laufzeit bestimmen muss, ob eine Klasse ein bestimmtes Interface implementiert. Dies läßt sich mit der Methode IsAssignableFrom() der Klasse System.Type realisieren:


public interface IMyInterface
{
    //Interface Code        
}

public class MyInterfaceImplementation : IMyInterface
{
    //Implementierung
}

public class AnotherClass
{ 
    //...
}

typeof(IMyInterface).IsAssignableFrom(typeof(AnotherClass)); //false
typeof(IMyInterface).IsAssignableFrom(typeof(MyInterfaceImplementation)); //true


Reflection und statische Klassen

Ich habe mich letztens mal mit dem Thema Reflection beschäftigt. Dabei kam zwangsläufig das Problem auf, dass ich irgendwie festellen musste, ob eine Klasse statisch ist oder nicht. Auf Nachfrage bei Google bin ich dann auf diesen Blogeintrag gestoßen, der sich mit genau diesem Problem beschäftigte:

http://dotneteers.net/blogs/divedeeper/archive/2008/08/04/QueryingStaticClasses.aspx