Introduce(插件系统简介)
概述
本后端系统提供了一个插件系统,允许开发者通过实现 IPluginInterceptor 接口来扩展系统的行为。插件可以在请求执行前后进行拦截,并执行自定义逻辑。插件管理器 (PluginManager) 负责加载、管理和执行这些插件。
插件管理器 (PluginManager)
PluginManager)PluginManager 是插件功能的核心类,负责加载插件、管理插件实例以及执行插件的拦截逻辑。
主要功能
加载插件:
PluginManager会扫描指定目录下的插件,并加载所有实现了IPluginInterceptor接口的类。插件拦截:插件可以在请求执行前后进行拦截,执行自定义逻辑。
插件信息管理:每个插件可以附带元数据(如名称、描述、作者等),
PluginManager会记录这些信息并提供查询接口。
主要方法
GetPluginDirectory(): 获取插件目录列表。LoadPlugins(IServiceCollection services): 加载插件并将其注册到依赖注入容器中。GetLoadedPlugins(): 获取已加载插件的元数据。ExecuteBeforeAsync(string route, object?[] args, string? username = null): 在请求执行前调用插件的OnBeforeExecutionAsync方法。ExecuteAfterAsync(string route, object? result, string? username = null): 在请求执行后调用插件的OnAfterExecutionAsync方法。RegisterPluginRoutes(IEndpointRouteBuilder endpoints): 注册路由
插件接口 (IPluginInterceptor)
IPluginInterceptor)IPluginInterceptor 是插件必须实现的接口,定义了插件在请求执行前后可以执行的操作。
方法
OnBeforeExecutionAsync(string route, object?[] args, string? username = null): 在请求执行前调用,可以修改请求参数或阻止请求继续执行。OnAfterExecutionAsync(string route, object? result, string? username = null): 在请求执行后调用,可以修改返回结果或执行其他操作。RegisterRoutes(IEndpointRouteBuilder endpoints):在程序启动时调用,用于注册路由
Last updated