0

为一些 C# winforms 应用程序开发插件(包括 GUI),我发现 Winforms 无法通过应用程序域边界工作。它要求控件是 MarshalByRef 等。所以通常要上传新的插件版本,我们需要重新启动应用程序,因为我们无法卸载以前的 plugin.dll。

所以我的问题是 - 是否有可能拥有完全可序列化的远程工作 GUI 框架?

(如果您可以改写问题,请随意,我不知道如何简短地表达)。

4

1 回答 1

0

是的,这是可能的,但有点痛苦。

  • 进程 -> 创建 AppDomain1
  • AppDomain1 -> 创建 AppDomain2 并加载将加载应用程序的入口点
  • 新插件来了
  • AppDomain1 卸载 AppDomain2
  • AppDomain1 加载新插件
  • AppDomain1 创建 AppDomain2 并加载将加载应用程序的入口点

这当然涉及重新加载,但您可以处理应用程序中上次发生的位置。

于 2011-01-20T13:32:18.660 回答