|
|
1
2
在一定程度上,这取决于谁将编写您的插件,您是否信任它们,当插件出现问题时,用户的体验或数据会发生什么变化? 小提琴手 http://www.fiddler2.com/fiddler2/ 是一个Web调试代理,它有一个插件模型,非常像您的首选——将所有内容都公开给插件编写器,希望它们不会出错。这使得编写Fiddler的扩展非常简单,但这确实意味着您需要小心。 如果您对这种方法不满意,我建议您仔细研究可能有帮助的2.NET技术。 第一个是System.AddIn命名空间 http://msdn.microsoft.com/en-us/library/gg145020.aspx . 此命名空间中的类型旨在帮助您创建支持加载项的应用程序。 第二个是MEF http://mef.codeplex.com/ . 托管可扩展性框架是一个非常强大的API,用于描述应用程序需求,并允许您构建高度可扩展的应用程序。 关于MEF和WinForms,请查看这个SO问题: |
|
|
2
0
第二种方法更可取,您可以创建一个接口
你也应该退房 MEF Microsoft托管扩展性框架。 |
|
|
3
0
我之前为这种场景所做的是使用AppDomain。这就像是你的主要过程中的一个过程。您可以在AppDomain中加载和卸载程序集,无需停止主进程,只要您的主进程知道从AppDomain中的“updates”dll加载的接口,它就可以毫无问题地使用它。如果不是,那么总会有反射:) |
|
|
4
0
你可能想看看像出租车/棱镜这样的东西来满足你的需求。很多UI-y-ness(技术术语)都是通过一系列的抽象来构建的。 |