私は以下のことを行うプログラムを実行していることを考慮してください。 実行中の新しいコードにアクセスできるように、テキストファイルからコードを読み込み、すでに実行されているコードのすべてのコンポーネント。 これはどのように可能ですか?助けてください。同じアセンブリ空間内で動的にモジュールを生成する
4
A
答えて
0
魔法の仕組みはよくわかりませんが、私はMyGenerationを見ています。これはオープンソースであり、あなたがしたいことを達成するものです。 C#、VB.Net、JScriptのファイルを読み込み、それらのスクリプトをビルド/コンパイルして、独自のクラスやアセンブリのセットにアクセスできるようにします。
2
アセンブリスペースでは、AppDomainを意味しますか?
IronPythonをご覧ください。スクリプティング言語として、実行時にプログラムに動的に追加する方が適しています。それ以外の場合は
:
あなたはSystem.dllの中で座ってMicrosoft.CSharp.CSharpCodeProvider経由のC#(およびVB.NET)コンパイラへのアクセス権を持っています。
このテキストファイルを使用して、別のdll(おそらくインメモリ)にコンパイルできます。コンパイル中に、現在実行中のアセンブリを参照として追加するようにしてください。次に、現在実行中のAppDomainにアセンブリをロードします。
- これにより、アプリケーション内のすべてのオブジェクトにアクセスできます。ただし、は、コードを再度アンロードできません。 AppDomain(つまり、アプリケーション)全体をアンロードする必要があります。
- アセンブリを個別のAppDomainにロードする必要があります。 Remoting(またはその他のプロセス通信方法)を介してオブジェクトの一部に明示的にアクセスする必要がありますが、テキストファイルが変更された場合にはコードをアンロード/置換できます。
いずれにしても、リフレクションを使用して動的に読み込まれたコードを呼び出す必要があります。
関連する問題
- 1. nUnit拡張モジュールは、テストと同じアセンブリ内にあります。
- 2. 同じWebアプリケーションで動的Webページを生成する方法
- 3. 同じ名前空間内のパッケージ:セットアップスクリプトのモジュールをインポートできません
- 4. 動的名前空間モジュールのパターン
- 5. Perlモジュール内で動的に作成された配列を空にします。
- 6. 兄弟モジュール間で動的に生成されたプロパティを共有する
- 7. 動的に生成されたアセンブリをキャッチする際のエラー
- 8. 複数のアセンブリで同じ名前空間が良い方法ですか?
- 9. 同じジョブのパラメータに基づいてJenkinsで動的パラメータを生成する
- 10. 同じプロジェクトフォルダ内のモジュールをインポートする
- 11. アセンブリの動的読み込み時に名前空間を変更する
- 12. C++モジュールの.netアセンブリの生成
- 13. 同じ名前空間で別のモジュールを拡張するモジュールをインポートする方法
- 14. 同じ名前空間
- 15. 同じフォーム内のユーザーコントロール間の移動
- 16. Cで動的に生成されたアセンブリを実行する(GNU/Linux)
- 17. Django Admin:同じモデルで複数のインラインを自動的に生成
- 18. ReadOnlyCollection <T>に(同じアセンブリ内で)内部的に項目を追加する最も良い方法は?
- 19. ZF2の同じモジュールの下に複数の名前空間があります
- 20. 異なるstruts.xmlファイル内のStruts2の同じ名前空間
- 21. 同じ行のdivを同じ高さにする - 動的コンテンツ
- 22. 同じページ関数間で動的なjQuery変数を渡す
- 23. TypeScript同じ型の名前空間内でグローバル型を使用する
- 24. 同じ関数内で別の名前空間を使用する
- 25. 同じローカルシンボルを使用して、別のモジュール内にモジュールを作成することは安全ですか?
- 26. 同じ要素を異なる要素にするjqueryブロックを自動的に生成できますか?
- 27. モジュール間で同じ変数を共有する方法は?
- 28. 別の名前空間で同じクラスのオブジェクト作成をオーバーライドする
- 29. 同じタイプ名、同じXSD名前空間を持つWCFサービスタイプ
- 30. rewrite.xqyと同じディレクトリレベルに存在するファイルのモジュール名前空間を定義できますか?
"自分のアセンブリスペース"、 "すべてのコンポーネント"& "既に実行中のコード"とはどういう意味ですか? – abhilash