私は以下のことを行うプログラムを実行していることを考慮してください。 実行中の新しいコードにアクセスできるように、テキストファイルからコードを読み込み、すでに実行されているコードのすべてのコンポーネント。 これはどのように可能ですか?助けてください。同じアセンブリ空間内で動的にモジュールを生成する
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. 同じWebアプリケーションで動的Webページを生成する方法
- 2. 動的名前空間モジュールのパターン
- 3. Perlモジュール内で動的に作成された配列を空にします。
- 4. 兄弟モジュール間で動的に生成されたプロパティを共有する
- 5. 動的に生成されたアセンブリをキャッチする際のエラー
- 6. 同じ名前空間
- 7. C++モジュールの.netアセンブリの生成
- 8. ZF2の同じモジュールの下に複数の名前空間があります
- 9. 異なるstruts.xmlファイル内のStruts2の同じ名前空間
- 10. Django Admin:同じモデルで複数のインラインを自動的に生成
- 11. ReadOnlyCollection <T>に(同じアセンブリ内で)内部的に項目を追加する最も良い方法は?
- 12. 同じローカルシンボルを使用して、別のモジュール内にモジュールを作成することは安全ですか?
- 13. 同じ行のdivを同じ高さにする - 動的コンテンツ
- 14. Cで動的に生成されたアセンブリを実行する(GNU/Linux)
- 15. 同じページ関数間で動的なjQuery変数を渡す
- 16. 同じタイプ名、同じXSD名前空間を持つWCFサービスタイプ
- 17. モジュール間で同じ変数を共有する方法は?
- 18. 同じ要素を異なる要素にするjqueryブロックを自動的に生成できますか?
- 19. 同じモジュール内の別の出力にPythonで複数のロガーを作成
- 20. 署名付き生成APKがAndroidスタジオ内と同じに動作しない
- 21. モジュール内の関数オフセットは常に同じですか?
- 22. 動的に生成されたアセンブリからGACアセンブリを参照する方法はありますか?
- 23. 同じ名前空間で別のアセンブリの静的クラスにアクセスするにはどうすればいいですか?
- 24. リストビュー内の項目の動的生成
- 25. 2つの.NETアセンブリで同じ名前と名前空間の型を使用します
- 26. 同じオブジェクト構造から同じテーブル内に複数の行を生成する
- 27. sphinx automodule:同じモジュール内のクラスを参照する方法は?
- 28. 同じモジュール内のファイルを参照する正しい方法
- 29. Hosted PowerShellで同じアセンブリ内のコマンドレットが表示されない
- 30. テーブルを動的に生成
"自分のアセンブリスペース"、 "すべてのコンポーネント"& "既に実行中のコード"とはどういう意味ですか? – abhilash