Implementierung der Schnittstelle zur Laufzeit: Methode get_Value nicht implementiert

8

Ich habe versucht, einen Typ zur Laufzeit zu definieren, der von einer bekannten Klasse erbt und eine Schnittstelle implementiert.

%Vor%

Hier ist das Code-Snippet, das zeigt, wie ich mein Ziel erreichen will.

%Vor%

Aus irgendeinem Grund bekomme ich beim Aufruf von typeBuilder.CreateType() die Ausnahme "get_Value-Methode nicht implementiert". Bisher nicht in der Lage, den Grund dafür zu sehen.

    
L.E.O 11.03.2011, 19:13
quelle

2 Antworten

7

Ändern Sie Ihre Zeile zu:

%Vor%

Dein Code hat dann für mich funktioniert. (Das virtuelle war erforderlich.)

    
Kirk Woll 11.03.2011, 19:18
quelle
12

Die implizite Schnittstellenimplementierung c # (durch Namensübereinstimmung) ist nur Bequemlichkeit; Wenn Sie es von Hand tun, müssen Sie jedes in der Tabelle der virtuellen Methode mit typeBuilder.DefineMethodOverride verknüpfen und die neue (generierte) Methode und die zu erfüllende Schnittstellenmethode übergeben. Dies muss für jede Methode jeder Schnittstelle ausgeführt werden, die Sie implementieren möchten.

    
Marc Gravell 11.03.2011 19:27
quelle