2011-01-20 13 views
0

いくつかのC#winformsアプリケーション用のプラグイン(GUIを含む)を開発すると、Winformsがアプリケーションドメインの境界線で動作しないことがわかりました。 MarshalByRefなどのコントロールが必要です。新しいプラグインバージョンをアップロードするには、元のplugin.dllをアンロードできないため、アプリケーションを再起動する必要があります。完全にシリアライズ可能なリモート作業GUIフレームワークは可能ですか?

私の質問は、完全にシリアライズ可能な、リモート作業GUIフレームワークを持つことは可能ですか?

(質問を言い換えることができれば、私はすぐにそれを表現する方法はわかりません)

答えて

0

はい、可能ですが、少し痛いです。

  • プロセス - >がAppDomain2を作成し、
  • 新plugginが
  • AppDomain1が新しい
  • をpluggin AppDomain2
  • AppDomain1負荷をアンロードに到着するアプリケーションをロードするエントリポイントをロードする - >がAppDomain1
  • がAppDomain1作成
  • AppDomain1 AppDomain2を作成し、アプリケーションをロードするエントリポイントをロードします。

これはもちろん、再読み込みを伴いますが、あなたのアプリで最後に何があったかを気にすることができます。

+0

GUIはAppDomainの境界線を通って動作しません。コントロールはMarshalByRefではありません – rudnev

+1

もちろん、それらはMarshalByRefではありませんが、たとえそうであったとしても、それらをサーバー上でホストする意味がないでしょう。 WIN32 APIとWIN32メッセージループをベースにしたコントロールとそのすべて。それらをホストすることは不可能です。 – Aliostad