using Serein.Library;
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Reflection;
namespace Serein.Library.Api
{
///
/// 流程依赖程序集管理
///
public interface IFlowLibraryService
{
///
/// 是否加载了基础依赖
///
bool IsLoadedBaseLibrary { get; }
///
/// 加载基础依赖
///
///
FlowLibraryInfo LoadBaseLibrary();
///
/// 获取已加载的方法信息
///
///
List GetAllLibraryInfo();
///
/// 加载指定依赖
///
///
///
FlowLibraryInfo? LoadFlowLibrary(string libraryfilePath);
///
/// 卸载程序集
///
///
///
bool UnloadLibrary(string assemblyName);
///
/// 获取委托
///
///
///
///
///
bool TryGetDelegateDetails(string assemblyName, string methodName, out DelegateDetails dd);
///
/// 获取方法描述
///
///
///
///
///
bool TryGetMethodDetails(string assemblyName, string methodName, out MethodDetails md);
///
/// 获取反射方法信息
///
///
///
///
///
bool TryGetMethodInfo(string assemblyName, string methodName, out MethodInfo methodInfo);
///
/// 获取依赖程序集中的类型
///
///
///
///
bool TryGetType(string fullName, out Type? type);
///
/// 获取依赖程序集中的类型
///
///
///
Type? GetType(string fullName);
///
/// 获取某个节点类型对应的方法描述
///
///
///
List GetMdsOnFlowStart(NodeType nodeType);
}
}