组插件可以使用 IPluginGroup 使您的项目的设置和配置更易于管理。这将允许您组织和创建多个插件,并在管理面板中对它们进行分组。
为什么要对插件进行分组?
创建内容类型时,可能需要添加核心服务的多个集成,例如:IRateableContentType,ICommentableContentType 和 ILikeableContentType。通过创建组插件,这些插件将在启用组插件时同时启用。
创建组插件
组插件接口只有一个名为“Plugins”的属性。它返回要分组的类型列表。在此示例中,有三个实现 IPlugin 的简单类,这些类在 IPluginGroup 接口分组。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Limyee.Extensibility.Version1; namespace Samples { public class MyGroupPlugin : IPluginGroup { public string Name { get { return "组插件"; } } public string Description { get { return "此插件将演示IPluginGroup的工作原理"; } } public void Initialize() { //No initialization required for IPluginGroup } public IEnumerable<Type> Plugins { get { return new[] { typeof (MyPluginOne), typeof (MyPluginTwo), typeof (MyPluginThree) }; } } } public class MyPluginOne : IPlugin { public string Name { get { return "插件一"; } } public string Description { get { return "测试插件组的第 1 部分(共 3 部分)"; } } public void Initialize() { } } public class MyPluginTwo : IPlugin { public string Name { get { return "插件二"; } } public string Description { get { return "测试插件组的第 2 部分(共 3 部分)"; } } public void Initialize() { } } public class MyPluginThree : IPlugin { public string Name { get { return "插件三"; } } public string Description { get { return "测试插件组的第 3 部分(共 3 部分)"; } } public void Initialize() { } } }
以下是组插件在 UI 中的显示形式。