C#コードからIronpythonオブジェクトと関数(アセンブリにコンパイルされた)を使用する方法はありますか?

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

質問

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アセンブリに標準ライブラリを何らかの形で提供する必要があることに注意してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top