46 lines
1.2 KiB
C#
46 lines
1.2 KiB
C#
using Cowain.Base.Models;
|
|
using Cowain.Base.Models.Menu;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using System.Reflection;
|
|
|
|
namespace Cowain.Base.Abstractions.Plugin;
|
|
|
|
/// <summary>
|
|
/// 插件接口
|
|
/// </summary>
|
|
public interface IPlugin
|
|
{
|
|
/// <summary>
|
|
/// 插件名称
|
|
/// </summary>
|
|
string PluginName { get; }
|
|
/// <summary>
|
|
/// 执行方法
|
|
/// </summary>
|
|
/// <param name="methodName">方法名称</param>
|
|
/// <param name="parameters">参数</param>
|
|
/// <returns>执行结果对象</returns>
|
|
R? Execute<T, R>(string methodName, T? parameters) where R : ResultModel<R>;
|
|
|
|
/// <summary>
|
|
/// 初始化插件
|
|
/// </summary>
|
|
/// <param name="serviceProvider"></param>
|
|
void Initialize(IServiceProvider serviceProvider);
|
|
/// <summary>
|
|
/// 注册服务
|
|
/// </summary>
|
|
/// <param name="services"></param>
|
|
void RegisterServices(IServiceCollection services, List<Assembly>? _assemblies);
|
|
/// <summary>
|
|
/// 配置菜单
|
|
/// </summary>
|
|
/// <param name="menuContext"></param>
|
|
void ConfigureMenu(MenuConfigurationContext? menuContext);
|
|
/// <summary>
|
|
/// 关闭插件
|
|
/// </summary>
|
|
void Shutdown();
|
|
}
|
|
|