Gibt es eine Möglichkeit Ironpython Objekte und Funktionen zu verwenden (zusammengestellt in eine Assembly) von C # -Code?

StackOverflow https://stackoverflow.com/questions/3795914

Frage

IronPython.net Dokumentation sagt der MSIL in der Versammlung nicht CLS-kompatibel ist, aber gibt es eine Abhilfe?

War es hilfreich?

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 schriftlich foo.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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top