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 提供更丰富的插件服务功能。