首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从激活的程序集(插件)加载时,System.Windows.Forms.Timer对象不会滴答作响

从激活的程序集(插件)加载时,System.Windows.Forms.Timer对象不会滴答作响
EN

Stack Overflow用户
提问于 2011-01-26 05:17:20
回答 1查看 529关注 0票数 1

我目前正在做一个项目,将程序集(插件)加载到主AppDomain空间(通过反射的Assembly.LoadFile()和Activator类)。作为带有插件的API的一部分,宿主应用程序可以请求在宿主窗体上显示控件派生的对象。

本质上:“宿主应用程序”是一个可以加载包含控件的程序集的WinForms应用程序。宿主应用程序加载程序集(通过Assembly.LoadFile()),然后向每个程序集请求一个控件。然后在窗体上呈现该控件(添加到容器中)。

一切看起来都很正常(按钮、标签、图像等)控件,并且它是交互式的。

EN

回答 1

Stack Overflow用户

发布于 2011-01-26 05:33:04

目前还不清楚"AppDomain空间“是什么意思。猜测:这里有一个很好的blog post,它描述了在辅助AppDomain中加载控件的危险。关键部分是这一部分,然后是关于如何使其工作的建议:

Windows窗体仅支持通过应用程序域隔离顶级窗口。不支持跨域的父子关系。许多人认为,因为控制最终是从MarshalByRefObject派生出来的,所以它可以被成功地远程处理;事实并非如此。控件上的某些接口可以跨域远程处理,但控件的API本身不支持远程处理。当您看到因为对象不可序列化而无法远程处理对象的异常时,您看到的是有人试图将远程代理强制转换为Control.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4798927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档