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% Machen Sie Ihre Klasse public
.
Das löst das Problem auf meinem Rechner.
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 ....
Tags und Links .net c# reflection dynamic dynamic-language-runtime