我正在从事一个架构的设计,该架构要以插件形式提供扩展
但现在我面临一个技术难题,每个插件都应该支持动态的装载和卸载。如果每个插件(程序集)都由一个单独的应用程序域来装载,这样是可以通过卸载应用程序域来卸载插件,但我的每个插件内部都定义了一些UI信息(如winform窗体),这些UI作为子窗口要集成到父框架中,可问题也来了,应用程序域之间传递的对象是通过远程代理完成的(无法直接访问),所以来自插件UI的直接引用就无法被框架窗口所集成(嵌入到框架父窗口中),我该怎么办呢,高手赐教!
这个问题是我翻csdn 老帖搞出来的,个人兴趣,问题断尾,不知道有没高手给出好办法。
老帖地址
http://topic.csdn.net/u/20070307/14/a64f6925-f0bd-45e2-a774-e080804fa20f.html
我自己测试了一下,他说的没错,我插件能获取到宿主窗体对象,能获取对象某些属性,甚至给他Text 属性赋值,但是我要是进行一些控件添加删除操作,就会提示
程序集“System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中的类型“System.Windows.Forms.Form+ControlCollection”未标记为可序列化。我已经都 加了序列化标记
郁闷中。。