Urs.Core提供了插件功能,方便各位在开发中或者项目已交付的情况下对通过插件安装的方式增加各种模块


目前提供的插件接口IPlugin 扩展的插件接口

BasePlugin 抽象类基础插件
IAdminMenuPlugin 菜单插件接口
IExternalAuthenticationMethod 第三方登录插件接口
IWidgetPlugin 挂件插件接口
IPaymentMethod 支付插件接口
IShippingRateMethod 配送费率插件接口


创建一个类库 Plugin.Demo

可以对Install Uninstall 进行重写 添加入页面中文本地化等;

using System;
using Urs.Core.Plugins;

namespace Plugin.Demo
{
    public class DemoPlugin : BasePlugin
    {
        public override string GetConfigurationPageUrl()
        {
            return $"/Admin/Demo/Configure";
        }
        public override void Install()
        {
            base.Install();
        }
        public virtual void Uninstall()
        {
            base.Uninstall();
        }
    }
}

GetConfigurationPageUrl为配置配置页面网址,就此可以配置一个配置页面(该页面能在插件中心里面的配置选项进入)

配置Area,设置AdminAuthorize 

using Microsoft.AspNetCore.Mvc;
using Urs.Framework.Controllers;

namespace Plugin.Demo
{
    /// <summary>
    /// 插件控制器 的摘要说明
    /// </summary>
    class DeomController : BasePluginController
    {
        [AdminAuthorize]
        [Area("Admin")]
        public IActionResult Configure()
        {
            return Content("Hello World");
        }
    }
}


配置插件plugin.json,在项目启动时会读取插件的plugin.json


image.png

设置输出路径,项目生成,这样子一个最基础的插件就完成了;