最初のいくつかの背景(役立つ場合):
私のアプリケーションは、最近 .Net Framework の v3.5 にアップグレードされた Web ベースのフレームワークですが、マスター ページ/ユーザー コントロール システムを使用していません。これは MVC パターンに似ており (かなり古いですが)、テンプレートからの応答ストリームに純粋な HTML を出力します。Python 式を使用すると、いくつかのルールとテンプレートのバリエーションを実現できます。
古いやり方
IronPython 1.x エンジンを C# に組み込むと、次のようなコードを実行できました。
PythonEngine pe = new PythonEngine();
Assembly a = Assembly.LoadFile("path to assembly");
pe.LoadAssembly(a);
pe.Import("Script");
ipy 2.0 には Import() メソッドはなく、ImportModule() メソッドは同じようには機能しないようです。Import() は、私たちが書くすべての Python スクリプトに次のような行を入れる必要性を軽減しました:
from MyAssembly import MyClass
MyClass が静的メソッドでいっぱいであるという事実は、MyClass.MyMethod() への呼び出しが非常にうまく機能することを意味します。MyClass が含まれているアセンブリは実行時に動的に読み込まれるため、オブジェクトをインスタンス化してスコープ内の変数に割り当てることはできません。
では本題へ
IronPython 2.0 の統合の他のすべての部分を整理しましたが、実装者が作成するすべてのスクリプトの先頭に「from MyAssembly import MyClass」と入力することを要求したくありません (ipy 1. .x) であり、しばらくの間サポートの問題になる可能性もあります。
そして最後に質問です
誰かがこの問題を抱えて解決しましたか? DLR のやり方が間違っているのでしょうか? それとも明らかな何かが欠けていますか?
誰かが助けてくれるのに必要な詳細はわかりませんが、これで十分だと思います.