Files
WCS/Cowain.Base/Abstractions/Plugin/IPlugin.cs
2026-03-02 09:08:20 +08:00

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();
}