Beschreibung:
Dieser Code ermöglicht es, ein interface an die statischen Methoden einer Klasse zu binden, sofern die Signaturen stimmen.
Einschränkungen:
-Sowohl Interfaces alsauch Klassen müssen "public" sein. Ich kenne zwar einen Workaround, der ist aber etwas aufwändiger zu implementieren.
-Das Interface darf keine Properties haben. Diese Einschränkung kommt aber ausschließlich durch meine Faulheit zustande und ich werde das bei Bedarf ergänzen.
Die Syntax ist eher gewöhnungsbedürftig:
Interface result = StaticInterfaceHelper.BindTypeToInterface<Interface>(typeof(Zieltyp));
public class meineKlasse//geht auch mit struct
{
public static void test(string meldung)
{
MessageBox.Show("Meldung:"+meldung);
}
}
public interface meinInterface
{
void test(string meldung);
}
meinInterface instanz=StaticInterfaceHelper.BindTypeToInterface<meinInterface>(typeof(meineKlasse));
instanz.test("aufgerufen");//entstpricht meineKlasse.test("aufgerufen");
Schlagwörter: