Istnieje kilka sposobów, aby sprawdzić, czy klasa implementuje interfejs. Które z nich są poprawne i zawsze zwrócą prawidłowy wynik?
//Sposób 1
if(klasa.IsClass && klasa.GetInterface("Interfejs") != null) {}
//Sposób 2
if(typeof(Interfejs).IsAssignableFrom(klasa)) {}
//Sposób 3
foreach(Type interfejs in klasa.GetInterfaces())
{
if(interfejs == typeof(Interfejs)) {}
break;
}
//Inne sposoby?
Nie jestem pewny, czy metoda GetInterface() w sposobie 1 szuka interfejsu tylko wśród implementowanych przez klasę "klasa", czy we wszystkich załadowanych.