Skip to main content
 Web开发网 » 站长学院 » 浏览器插件

PluginCore - ASP.NET Core 轻量级插件框架

2021年11月03日9200百度已收录

PluginCore - ASP.NET Core 轻量级插件框架  轻量级框架 第1张

适用于 的轻量级插件框架

介绍适用于 的轻量级插件框架

简单 - 约定优于配置, 以最少的配置帮助你专注于业务开箱即用 - 前后端自动集成动态 WebAPI - 每个插件都可新增 Controller, 拥有自己的路由热插拔 - 上传、安装、启用、禁用、卸载 均无需重启站点易扩展 - 你可以编写你自己的插件sdk, 然后引用插件sdk, 编写扩展插件 - 自定义插件钩子, 并应用无需数据库 - 无数据库依赖0侵入 - 近乎0侵入仓库GitHub -

Gitee -

一分钟集成推荐使用 NuGet, 在你项目的根目录 执行下方的命令, 如果你使用 Visual Studio, 这时依次点击 Tools -> NuGet Package Manager -> Package Manager Console , 确保 "Default project" 是你想要安装的项目, 输入下方的命令进行安装.

PM> Install-Package PluginCore在你的

using PluginCore.Extensions;// This method gets called by the runtime. Use this method to add services to the container.public void ConfigureServices(IServiceCollection services){ services.AddControllers(); // 1. 添加 PluginCore services.AddPluginCore();}// This method gets called by the runtime. Use this method to configure the 需改为你的地址

使用见示例(/examples)添加插件钩子, 并应用1.例如,自定义插件钩子: ITestPlugin

using PluginCore.IPlugins;namespace PluginCore.IPlugins{ public interface ITestPlugin : IPlugin { string Say(); }}2.在需要激活的地方,应用钩子,这样所有启用的插件中,实现了 ITestPlugin 的插件,都将调用 Say()

using PluginCore;using PluginCore.IPlugins;namespace WebApi.Controllers{ [Route("api/[controller]")] [ApiController] public class TestController : ControllerBase { private readonly PluginFinder _pluginFinder; public TestController(PluginFinder pluginFinder) { _pluginFinder = pluginFinder; } public ActionResult Get() { //var plugins = PluginFinder.EnablePlugins<BasePlugin>().ToList(); // 所有实现了 ITestPlugin 的已启用插件 var plugins2 = _pluginFinder.EnablePlugins<ITestPlugin>().ToList(); foreach (var item in plugins2) { // 调用 string words = item.Say(); Console.WriteLine(words); } return Ok(""); } }}补充开发插件只需要, 添加对 PluginCore.IPlugins 包 (插件sdk) 的引用即可,当然如果你需要 PluginCore , 也可以添加引用规范插件接口应当位于 PluginCore.IPlugins 命名空间,这是规范,不强求,但建议这么做,程序集名不一定要与命名空间名相同,你完全在你的插件sdk程序集中,使用 PluginCore.IPlugins 命名空间。

环境运行环境: .NET Core 3.1 (+)开发环境: Visual Studio Community 2019相关项目plugincore-admin-frontendAuthorPluginCore © yiyun, Released under the Apache-2.0 License.Authored and maintained by yiyun with help from contributors (list).

GitHub @yiyungent Gitee @yiyungent

评论列表暂无评论
发表评论
微信