C# 动态加载的程序集显示表单?

C# 动态加载的程序集显示表单?,c#,winforms,remoting,C#,Winforms,Remoting,是否有方法允许动态加载程序集中的类实例显示窗体 我有一个插件系统,它在不同的域中加载程序集(用于根据需要卸载它们)。这些程序集可能有设置,我希望可以让每个程序集向最终用户提供一个表单,以便编辑它们。程序集中的每个扩展都需要为此实现一个特殊接口。 然而,在从我的插件管理器类显示表单时,我得到一个异常,表单类不可序列化。 除了从表单派生并自己实现ISerializable之外,还有其他方法可以做到这一点吗 发送任何提示、提示和(希望是:D)解决方案! …Arjan…序列化问题是因为表单类不是通过引用

是否有方法允许动态加载程序集中的类实例显示窗体

我有一个插件系统,它在不同的域中加载程序集(用于根据需要卸载它们)。这些程序集可能有设置,我希望可以让每个程序集向最终用户提供一个表单,以便编辑它们。程序集中的每个扩展都需要为此实现一个特殊接口。 然而,在从我的插件管理器类显示表单时,我得到一个异常,表单类不可序列化。 除了从表单派生并自己实现ISerializable之外,还有其他方法可以做到这一点吗

发送任何提示、提示和(希望是:D)解决方案!
…Arjan…

序列化问题是因为表单类不是通过引用封送的,而您正试图跨域调用该类上的方法。如果它们需要显示的唯一表单是用户设置,那么您最好定义一些在插件之间传递的“设置”类。

Paul,谢谢您的回答。但是,尽管这可能是一个解决方案,但我必须反驳这样一个事实,即这些表单可能包含使用设置类不容易传输的逻辑。扩展/插件不完全在我的控制范围内,可以由第三方开发…另一个选项是向其他AppDomain中的插件发出信号,它需要显示表单,并且它从不将对该表单的引用传递回调用域。它可以传递DialogResult以指示表单的成功或失败。