Wenn versucht wird, eine dynamische Methode für eine dynamisch erstellte Assembly zu binden, wird eine RuntimeBinderException ausgelöst

9

Ich habe eine praktische Hilfsmethode, die Code aufnimmt und eine In-Memory-Assembly ausspuckt. (Es verwendet CSharpCodeProvider , obwohl ich denke, dass das nicht wichtig sein sollte.) Diese Assembly funktioniert wie jede andere mit Reflexion, aber wenn sie mit dem dynamic Schlüsselwort verwendet wird, scheint sie mit RuntimeBinderException zu versagen:

  

'Objekt' enthält keine Definition für 'Sound'

Beispiel:

%Vor%

Weiß jemand, warum der DLR das nicht kann? Gibt es etwas, das getan werden könnte, um dieses Szenario zu beheben?

BEARBEITEN:

createAssembly-Methode:

Disclaimer: einige dieser Sachen enthalten Erweiterungsmethoden, benutzerdefinierte Typen usw. Es sollte jedoch selbsterklärend sein.

%Vor%     
MgSam 17.04.2013, 16:02
quelle

2 Antworten

5

Machen Sie Ihre Klasse public .

%Vor%

Das löst das Problem auf meinem Rechner.

    
Robert Harvey 17.04.2013, 17:31
quelle
0

Dies könnte ein Workarround sein.

%Vor%

PS: Ich versuche, dies als Kommentar zu posten (da es ein Workarround ist, keine Antwort), aber das konnte ich nicht tun, weil es zu lang ist ....

    
Alejandro Miralles 17.04.2013 17:28
quelle