1. ホーム
  2. .net

[解決済み] .NETアプリケーションドメインとは何ですか?

2023-04-20 15:57:41

質問

特に、2つの異なるアプリケーションドメインでコードを実行することの意味は何でしょうか?

通常、アプリケーションドメインの境界を越えてデータはどのように渡されるのでしょうか?プロセス境界を越えてデータを渡すのと同じなのでしょうか?この抽象化とそれが何の役に立つのかについてもっと知りたいと思っています。

EDITです。 AppDomainクラスの一般的な良い既存のカバレッジは、次のとおりです。 アプリケーションドメインがわからない

どのように解決するのですか?

ある AppDomain は、基本的にプロセスの内部でコードが実行される孤立した領域を提供します。

これを考える簡単な方法は、メイン プロセスの内部にある軽量プロセスのようなものです。 各 AppDomain は完全に分離されたプロセス内に存在するため、コードを安全に実行でき(必要に応じてプロセス全体を破壊することなくアンロードできます)、個別のセキュリティなどを使用できます。

プロセス内の 2 つの異なる AppDomain でコードを実行する場合、コードは分離して実行されます。 AppDomain 間の通信はすべて、シリアライズされるか、または MarshallByRefObject を介して処理されます。 この点ではリモーティングを使用するのと非常によく似た動作をします。 これは非常に多くのセキュリティを提供します。信頼できないコードを実行することができ、それが何か間違ったことをしても、あなたに影響を与えません。

に関する MSDN の説明には、さらに多くの詳細があります。 アプリケーション ドメイン .