如何为 WPF 应用程序创建和集成插件
How to create and integrate Plugin for a WPF application
我一直在到处寻找一个例子或类似的东西,但没有任何运气,所以我希望这里有人能给我指明正确的方向。
我有一个要构建的 WPF 应用程序plugins/DLC/add-in(不确定在 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
.
您可以为此使用 MEF。
MEF 有几个版本:
- System.ComponentModel.Composition。它是 .NET 框架的一部分,也可以作为 Nuget package.
- System.Composition,这是一个轻量级版本。它不允许动态重组,但它比第一个更快。 Nuget包也是available.
- VS Visual Studio 使用的实现的 MEF。它可以重用其他两个库中的部件。 GitHub 回购是 here。
我一直在到处寻找一个例子或类似的东西,但没有任何运气,所以我希望这里有人能给我指明正确的方向。
我有一个要构建的 WPF 应用程序plugins/DLC/add-in(不确定在 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
.
您可以为此使用 MEF。
MEF 有几个版本:
- System.ComponentModel.Composition。它是 .NET 框架的一部分,也可以作为 Nuget package.
- System.Composition,这是一个轻量级版本。它不允许动态重组,但它比第一个更快。 Nuget包也是available.
- VS Visual Studio 使用的实现的 MEF。它可以重用其他两个库中的部件。 GitHub 回购是 here。