Gibt es eine Möglichkeit Ironpython Objekte und Funktionen zu verwenden (zusammengestellt in eine Assembly) von C # -Code?
-
05-10-2019 - |
Frage
IronPython.net Dokumentation sagt der MSIL in der Versammlung nicht CLS-kompatibel ist, aber gibt es eine Abhilfe?
Lösung
Dies war zum Teil eine Motivation für die Zugabe des dynamic
Typs C # 4.0. Das größte Problem ist, dass Ironpython Erklärungen nicht Typinformation enthalten, die es schwierig macht, es von C # zu verwenden. Das dynamic
Schlüsselwort fügt Unterstützung für solche dynamisch typisierte Objekte zu C # 4.0. Siehe zum Beispiel:
- noch möglich . Sie werden nur zu schreiben, so etwas wie
foo.Invoke("Bar", 42)
statt nur schriftlichfoo.Bar(42)
.
Andere Tipps
Ich schreibe dies auf meinem Handy so bitte keine dummen Fehler verzeihen. die kompilierte zu verwenden, Montage, stellen Sie sicher, mit clr.CompileModules kompilieren, NICHT pyc.py. Dann in Ihrem C # rufen Sie die LoadAssembly Methode auf dem Objekt Python Scriptengine. Das Modul kann dann durch den Aufruf der Methode ImportModule auf Ihrem Script importiert werden. Von dort aus, wenn Sie die Vorteile des dynamischen Keyword nehmen, tun Sie dies. Sonst werden Sie mit einigen magischen String schweren Anrufe GetVariable geklebt werden. Beachten Sie auch, dass Sie die Standardbibliothek zu kompilierten Python Assembly in einer oder anderen Form würden liefern müssen.