组插件可以使用 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 中的显示形式。