1

MarshallByRefObjectから継承するクラスを正常に作成しました。

上記のクラスもインターフェースを実装し、メインのAppDomainからリモートで呼び出されます。DTOは、情報を伝達するためにも作成されました。

リモートクラスと呼び出し元ドメインの両方で、リモートでロードされたアセンブリがメインのAppDomainにロードされていないことをデバッガーから確認しました。繰り返しになりますが、リモートタイプ/アセンブリはメインAppDomainに流れ込んでおらず、デバッグウォッチを介してに検証されていAppDomain.CurrentDomain.GetAssemblies()ます。

AppDomain.CurrentDomain.GetAssemblies().Count() //From inside the remote object
121
AppDomain.CurrentDomain.GetAssemblies().Count() //At the client, after RPC call.
13

その後、リモート/一時ドメインがオフロードされます。

ただし、リモートドメインで読み取られたdllを削除することはできません。何が欠けていますか?

また、次のバリエーションについても実験しました。

AppDomain.CurrentDomain.Load(File.ReadAllBytes(_.FullName))

Assembly.LoadFrom(_.FullName)

どちらを使用しても、私が知る限り、アセンブリはリモートでロードされ、オフロードされましたが、ファイルはまだロックされています。

4

0 に答える 0