【发布时间】:2019-07-18 17:49:43
【问题描述】:
我一直在到处寻找一个例子或类似的东西,但没有任何运气,所以我希望这里的人能把我引向正确的方向。
我有一个 WPF 应用程序,我想构建插件/DLC/加载项(不确定当它是 WPF 时要搜索的正确词是什么,所以我将使用插件)。
我还没有构建任何插件,因为我认为可能有一个聪明的nuget package 或pattern 可以使用。
所以本质上我想要一些不那么乏味的东西(我知道这很简单......):
if(myFolderPath contains "plugin.dll")
{
AddAMenuButtonWithThePlugin();
}
我希望可能是某种AnnotationMethod 之类的:
[UseThisDll("plugin.dll")]
private void AddAMenuButtonWithThePlugin(){...}
如果您之前有过类似的任务,我想听听您是如何解决这个问题的,因为我发现自己的想法并不容易实现。
基本上,我有多台装有 WPF 的 PC,它们使用 Squirrel.Windows 进行安装和更新。
但是我有一些插件,可能只有一些 PC 应该有。
有什么好的建议吗?基本上我想将button 添加到page,这将导致它进入DLC page。
【问题讨论】:
-
尝试使用 Mono.Addins (nuget.org/packages/Mono.Addins)、MEF(nuget.org/packages/System.ComponentModel.Composition) 或 (nuget.org/packages/System.Composition)
-
谢谢@Tom,我给他们看看 :)
-
您几乎可以根据您的要求描述 mef 的功能。
-
MEF 非常适合这个。以前从未使用过或被介绍过,我可以看到网上有很多例子。完美的!汤姆或安迪,您会创建一个答案以便我接受吗? :)
-
我写了一个答案,如果你还想接受的话。