文章 管理依赖关系

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