using Serein.Library.Api; using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Diagnostics.Contracts; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Serein.Library.Utils { public static class SereinEnv { private static IFlowEnvironment environment; /// /// 记录全局数据 /// public static ConcurrentDictionary EnvGlobalData { get; } = new ConcurrentDictionary(); /// /// 清空全局数据 /// public static void ClearGlobalData() { foreach (var nodeObj in EnvGlobalData.Values) { if (nodeObj != null) { if (typeof(IDisposable).IsAssignableFrom(nodeObj?.GetType()) && nodeObj is IDisposable disposable) { disposable?.Dispose(); } } else { } } EnvGlobalData.Clear(); } /// /// 设置运行流程 /// /// public static void SetEnv(IFlowEnvironment environment) { if (environment != null) { SereinEnv.environment = environment; } } /// /// 输出内容 /// /// 类型 /// 内容 /// 级别 public static void WriteLine(InfoType type, string message, InfoClass @class = InfoClass.General) { SereinEnv.environment.WriteLine(type,message,@class); } } }