81

.NETには、私が理解していることから、アセンブリをメモリにロードするために使用できるアプリケーションドメインのこの概念があります。アプリケーション ドメインについて調査したり、地元の書店に行ってこの主題に関する追加の知識を求めたりしましたが、非常に少ないようです。

アプリケーション ドメインでできることは、アセンブリをメモリにロードし、必要なときにアンロードできることだけです。

アプリケーション ドメインについて言及した他の機能は何ですか? スレッドはアプリケーション ドメインの境界を尊重しますか? メインのアプリケーション ドメイン以外の別のアプリケーション ドメインにアセンブリをロードすることで、通信のパフォーマンスを超えた欠点はありますか?

アプリケーション ドメインについて説明しているリソースへのリンクも役立ちます。それらについての情報があまりないMSDNをすでにチェックアウトしました。

4

3 に答える 3

27

AppDomains でできること:

  • プログラムの安定性を危険にさらすことなくシャットダウンできます。
  • コードをロードして、自分のプロセスよりも少ない権限を与えることができます (たとえば、プロセスは完全に信頼されて実行されますが、ディスク上にファイルを作成することさえできない別の AppDomain にコードをロードします)。
  • プロセスをクラッシュさせることなく、AppDomain の未処理の例外を処理できます。
  • 等。

簡単に言えば、これはセキュリティの境界であり、ほとんどプロセスの境界です。パフォーマンスに関する限り、プロセス内の複数の AppDomains は大きなオーバーヘッドにはなりません。AppDomain の代わりに別のプロセスを起動すると、はるかにコストがかかります。

于 2009-03-07T21:46:21.697 に答える