如何为WPF应用程序创建和集成插件

时间:2019-07-18 17:49:43

标签: c# wpf plugins add-in

我一直在到处寻找例子或类似的东西,没有任何运气,所以我希望这里的人能给我正确的方向。

我有一个WPF应用程序,我想构建plugins / DLC / add-in(不确定是WPF时要搜索什么正确的词,所以我将使用Plugin)。

我尚未构建任何插件,因为我认为可能会使用智能nuget packagepattern

所以从本质上讲,我想要的东西不那么繁琐(我知道这是如此简单...):

if(myFolderPath contains "plugin.dll")
{
    AddAMenuButtonWithThePlugin();
}

我希望可以使用某种AnnotationMethod,例如:

[UseThisDll("plugin.dll")]
private void AddAMenuButtonWithThePlugin(){...}

如果您之前有过类似的任务,我想听听您如何解决此问题,因为我发现自己的想法对我来说很难实现。

基本上,我有多台装有WPF的PC,它们使用Squirrel.Windows进行安装和更新。

但是我有一些插件,也许只有某些PC才应该具有。

有什么好的建议吗?基本上,我想将button添加到page并将其引导到DLC page

1 个答案:

答案 0 :(得分:1)

您可以为此使用MEF。

有几种MEF版本:

  • System.ComponentModel.Composition。它是.NET框架的一部分,也可以作为Nuget package使用。
  • System.Composition,它是轻量级版本。它不允许动态重组,但比第一个要快。 Nuget软件包也是available
  • VS MEF,这是Visual Studio使用的实现。它可以重用其他两个库中的零件。 GitHub存储库为here