C#コードからIronpythonオブジェクトと関数(アセンブリにコンパイルされた)を使用する方法はありますか?
-
05-10-2019 - |
質問
Ironpython.netドキュメントは、アセンブリのMSILはCLS準拠ではないと言いますが、回避策はありますか?
解決
これは部分的に追加する動機でした dynamic
C#4.0に入力します。最大の問題は、Ironpython宣言にはタイプ情報が含まれていないため、C#から使用することが難しくなることです。 dynamic
キーワードは、このような動的に型付けされたオブジェクトのサポートをC#4.0に追加します。たとえば、参照してください:
C#3.0からの関数/オブジェクトを呼び出すのはもう少し迷惑ですが、 まだ可能です. 。あなたはただのようなものを書く必要があります foo.Invoke("Bar", 42)
ただ書く代わりに foo.Bar(42)
.
他のヒント
携帯電話でこれを入力しているので、愚かな間違いを許してください。コンパイルされたアセンブリを使用するには、pyc.pyではなくclr.compilemodulesでコンパイルしてください。次に、C#でPython ScriptEngineオブジェクトのLoadAssemblyメソッドを呼び出します。その後、ScriptEngineのImportModuleメソッドを呼び出すことにより、モジュールをインポートできます。動的キーワードを利用できる場合は、そこからそうしてください。それ以外の場合は、getVariableに魔法の弦の重い呼び出しで立ち往生します。また、コンパイルされたPythonアセンブリに標準ライブラリを何らかの形で提供する必要があることに注意してください。
所属していません StackOverflow