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

How to create and integrate Plugin for a WPF application

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

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

我还没有构建任何插件,因为我认为可能有一个智能 nuget packagepattern 可以使用。

所以基本上我想要的东西不像(我知道这很简单......):

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

我希望可能 AnnotationMethod 像:

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

如果你之前有过类似的任务,我想听听你是如何解决这个问题的,因为我发现我自己的想法对我来说并不容易实现。

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

但是我有一些插件可能只有一些 PC 应该有。

有什么好的建议吗?基本上我想添加一个 button 到一个 page ,这将导致它到 DLC page.

您可以为此使用 MEF。

MEF 有几个版本:

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