在开发支持插件的应用程序时,我想知道什么是允许插件在界面中创建自己的菜单条目,向现有菜单添加菜单选项,向应用程序的配置对话框添加某些选项的最佳方法,那种东西,以及如何处理保存这些变化?如果插件知道它已经添加到表单中的选项,它应该如何处理保存这些修改过的选项?
我认为更好的方法是公开像GetMenuOptions()或GetConfigurationOptions()这样的泛型方法,以便主机应用程序实际操作这些东西,而不是将menustrip对象或配置表单对象传递给它的插件修改?我是在正确的轨道上,设计明智吗?是否有一些共同的模式?
平台/语言:.net / c#
谢谢!
答案 0 :(得分:1)
选项1:中央菜单条目存储库
优点
选项2:按属性定义
选项3:插件遵循界面,按需提供菜单数据
答案 1 :(得分:0)
常见的方法是使用动词和服务的组合。作为插件体系结构的一部分,您可以提供一个接口,例如IInterfaceService,您可以使用它来使用多个实例并使用它们来扩展您的界面,例如
public interface IInterfaceService
{
IVerb[] GetVerbs(string category);
}
public interface IVerb
{
string Category { get; }
string Name { get; }
void Action();
}
这显然非常简单,你需要充实你需要的东西。如果你将大多数扩展点基于类似的东西,你可以很容易地插入命令动词等。
希望能让你开始。