API 参考与接口文档
介绍
本文档详细介绍了 Known 项目中的插件系统接口和服务,包括 PluginBase.cs
和 PluginService.cs
文件的核心功能、接口定义和实现细节。这些接口和服务为开发者提供了扩展 Known 项目功能的标准化方式。
插件接口
文件概述
- 文件路径:
Known/Plugins/PluginBase.cs
- 功能: 定义了插件的基础接口和基类,支持插件的配置、渲染和交互。
核心接口与类
IPlugin
接口- 功能: 插件的基础接口,定义了插件的通用行为和属性。
- 关键属性:
Parent
: 上级组件对象。Info
: 插件配置信息。
- 关键方法:
Config
: 显示插件配置界面。
public interface IPlugin : Microsoft.AspNetCore.Components.IComponent { BaseComponent Parent { get; set; } PluginInfo Info { get; set; } void Config(Func<object, Task<Result>> onConfig); }
PluginBase<T>
基类- 功能: 插件组件的基类,实现了
IPlugin
接口,提供了插件的默认行为和渲染逻辑。 - 关键属性:
AutoPage
: 自动页面组件对象。Parameter
: 插件配置参数对象。Draggable
: 是否支持拖拽。
- 关键方法:
BuildPlugin
: 构建插件内容。AddAction
: 添加插件操作项。SaveParameterAsync
: 保存插件参数。
public class PluginBase<T> : BaseComponent, IPlugin { public AutoPage AutoPage => Page.Page; public T Parameter { get; internal set; } public bool Draggable { get; set; } public BaseComponent Parent { get; set; } [Parameter] public PluginInfo Info { get; set; } protected virtual void BuildPlugin(RenderTreeBuilder builder) { } protected ActionInfo AddAction(string icon, string name, Action onClick) { } protected Task<Result> SaveParameterAsync(T parameter) { } }
- 功能: 插件组件的基类,实现了
类图
classDiagram class IPlugin { +BaseComponent Parent +PluginInfo Info +Config(Func<object, Task<Result>> onConfig) } class PluginBase { +AutoPage AutoPage +T Parameter +bool Draggable +BaseComponent Parent +PluginInfo Info +BuildPlugin(RenderTreeBuilder builder) +AddAction(string icon, string name, Action onClick) +SaveParameterAsync(T parameter) } IPlugin <|-- PluginBase
插件服务
文件概述
- 文件路径:
Known/Plugins/PluginService.cs
- 功能: 提供了插件服务的接口和默认实现,支持表格和表单插件的配置和操作。
核心接口与类
IPluginService
接口- 功能: 定义了插件服务的通用行为。
- 关键方法:
GetTableActions
: 获取表格插件的操作列表。GetFormActions
: 获取表单插件的操作列表。ConfigTable
: 配置表格插件。AddTableColumn
: 添加表格栏位插件。EditToolbar
: 编辑工具条。
public interface IPluginService { List<ActionInfo> GetTableActions(BaseTablePage page); List<ActionInfo> GetFormActions(BaseForm form); void ConfigTable(); void AddTableColumn(); void AddTableAction(); void EditToolbar(KToolbar toolbar); }
PluginService
类- 功能: 默认的插件服务实现,目前为空实现,开发者可以扩展。
class PluginService : IPluginService { public List<ActionInfo> GetTableActions(BaseTablePage page) => []; public List<ActionInfo> GetFormActions(BaseForm form) => []; public void ConfigTable() { } public void AddTableColumn() { } public void AddTableAction() { } public void EditToolbar(KToolbar toolbar) { } }
类图
classDiagram class IPluginService { +GetTableActions(BaseTablePage page) +GetFormActions(BaseForm form) +ConfigTable() +AddTableColumn() +AddTableAction() +EditToolbar(KToolbar toolbar) } class PluginService { +GetTableActions(BaseTablePage page) +GetFormActions(BaseForm form) +ConfigTable() +AddTableColumn() +AddTableAction() +EditToolbar(KToolbar toolbar) } IPluginService <|-- PluginService
总结
本文档详细介绍了 Known 项目中的插件系统,包括插件的基础接口 IPlugin
和基类 PluginBase<T>
,以及插件服务接口 IPluginService
和默认实现 PluginService
。这些接口和类为开发者提供了扩展 Known 项目功能的标准化方式,支持插件的配置、渲染和交互。
开发者可以通过继承 PluginBase<T>
实现自定义插件,或扩展 PluginService
提供更丰富的插件服务功能。