Laden...

Interfaces an statische Methoden Binden

Erstellt von Floste vor 14 Jahren Letzter Beitrag vor 14 Jahren 2.604 Views
Floste Themenstarter:in
1.130 Beiträge seit 2007
vor 14 Jahren
Interfaces an statische Methoden Binden

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:

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!