diff --git a/src/dotnetCampus.ApplicationStartupManager/IStartupManager.cs b/src/dotnetCampus.ApplicationStartupManager/IStartupManager.cs index 526e95a..01470be 100644 --- a/src/dotnetCampus.ApplicationStartupManager/IStartupManager.cs +++ b/src/dotnetCampus.ApplicationStartupManager/IStartupManager.cs @@ -6,6 +6,6 @@ namespace dotnetCampus.ApplicationStartupManager { Task WaitStartupTaskAsync(string startupTaskKey); - StartupTask GetStartupTask() where T : StartupTask; + StartupTaskBase GetStartupTask() where T : StartupTaskBase; } } \ No newline at end of file diff --git a/src/dotnetCampus.ApplicationStartupManager/NullObjectStartup.cs b/src/dotnetCampus.ApplicationStartupManager/NullObjectStartup.cs index 44ca647..5f1edc8 100644 --- a/src/dotnetCampus.ApplicationStartupManager/NullObjectStartup.cs +++ b/src/dotnetCampus.ApplicationStartupManager/NullObjectStartup.cs @@ -1,6 +1,6 @@ namespace dotnetCampus.ApplicationStartupManager { - internal sealed class NullObjectStartup : StartupTask + internal sealed class NullObjectStartup : StartupTaskBase { } diff --git a/src/dotnetCampus.ApplicationStartupManager/StartupContext.cs b/src/dotnetCampus.ApplicationStartupManager/StartupContext.cs index 4868fae..8b7a18a 100644 --- a/src/dotnetCampus.ApplicationStartupManager/StartupContext.cs +++ b/src/dotnetCampus.ApplicationStartupManager/StartupContext.cs @@ -31,7 +31,7 @@ namespace dotnetCampus.ApplicationStartupManager //Configuration = configuration; _waitStartupTaskAsync = waitStartupAsync; //Configs = configuration.CreateAppConfigurator(); - FastFail = fastFailAction ?? (exception => StartupTask.CompletedTask); + FastFail = fastFailAction ?? (exception => StartupTaskBase.CompletedTask); } } } \ No newline at end of file diff --git a/src/dotnetCampus.ApplicationStartupManager/StartupManager.cs b/src/dotnetCampus.ApplicationStartupManager/StartupManager.cs index 85b3ff1..73b0ec1 100644 --- a/src/dotnetCampus.ApplicationStartupManager/StartupManager.cs +++ b/src/dotnetCampus.ApplicationStartupManager/StartupManager.cs @@ -146,7 +146,7 @@ namespace dotnetCampus.ApplicationStartupManager { var key = criticalNodeKeys[i]; var current = GetStartupTaskWrapper(key); - current.StartupTask = new NullObjectStartup(); + current.TaskBase = new NullObjectStartup(); current.Categories = StartupCategory.All; if (i - 1 >= 0) @@ -184,7 +184,7 @@ namespace dotnetCampus.ApplicationStartupManager public StartupManager AddCriticalNodes(string nodeName, string beforeTasks = null, string afterTasks = null) { var wrapper = GetStartupTaskWrapper(nodeName); - wrapper.StartupTask = new NullObjectStartup(); + wrapper.TaskBase = new NullObjectStartup(); wrapper.Categories = StartupCategory.All; if (beforeTasks?.Split(new[] {";"}, StringSplitOptions.RemoveEmptyEntries) is string[] before) @@ -240,7 +240,7 @@ namespace dotnetCampus.ApplicationStartupManager var dispatcher = _dispatcher; foreach (var wrapper in Graph) { - var startupTasks = wrapper.Dependencies.Select(s => GetStartupTaskWrapper(s).StartupTask); + var startupTasks = wrapper.Dependencies.Select(s => GetStartupTaskWrapper(s).TaskBase); if (wrapper.UIOnly) { await dispatcher.InvokeAsync(() => wrapper.ExecuteTask(startupTasks, Context)); @@ -251,7 +251,7 @@ namespace dotnetCampus.ApplicationStartupManager } } - await Graph.Last().StartupTask.TaskResult; + await Graph.Last().TaskBase.TaskResult; Logger.RecordTime("AllStartupTasksCompleted"); @@ -280,8 +280,8 @@ namespace dotnetCampus.ApplicationStartupManager wrapper.UIOnly = meta.Scheduler == StartupScheduler.UIOnly; wrapper.Categories = meta.Categories; wrapper.CriticalLevel = meta.CriticalLevel; - wrapper.StartupTask = meta.Instance; - wrapper.StartupTask.Manager = this; + wrapper.TaskBase = meta.Instance; + wrapper.TaskBase.Manager = this; wrappers.Add(wrapper); } @@ -446,10 +446,10 @@ namespace dotnetCampus.ApplicationStartupManager } public Task WaitStartupTaskAsync(string startupTaskKey) - => GetStartupTaskWrapper(startupTaskKey).StartupTask.TaskResult; + => GetStartupTaskWrapper(startupTaskKey).TaskBase.TaskResult; - StartupTask IStartupManager.GetStartupTask() - => GetStartupTaskWrapper(StartupTypeToKey(typeof(T))).StartupTask; + StartupTaskBase IStartupManager.GetStartupTask() + => GetStartupTaskWrapper(StartupTypeToKey(typeof(T))).TaskBase; private static string StartupTypeToKey(Type type) => type.Name.Remove(type.Name.Length - "startup".Length); diff --git a/src/dotnetCampus.ApplicationStartupManager/StartupTask.cs b/src/dotnetCampus.ApplicationStartupManager/StartupTaskBase.cs similarity index 95% rename from src/dotnetCampus.ApplicationStartupManager/StartupTask.cs rename to src/dotnetCampus.ApplicationStartupManager/StartupTaskBase.cs index 5a81cd3..4fd4aea 100644 --- a/src/dotnetCampus.ApplicationStartupManager/StartupTask.cs +++ b/src/dotnetCampus.ApplicationStartupManager/StartupTaskBase.cs @@ -4,7 +4,7 @@ using System.Threading.Tasks; namespace dotnetCampus.ApplicationStartupManager { - public abstract class StartupTask + public abstract class StartupTaskBase { // 由于我们都在编译期间收集 Attribute 了,当然也能收集使用方到底重写了哪个 Run。 // 这里传入的 isUIOnly 就是编译期间收集的那个属性。 @@ -49,7 +49,7 @@ namespace dotnetCampus.ApplicationStartupManager internal IStartupManager Manager { get; set; } - protected TValue FetchValue() where TStartup : StartupTask, IStartupValueProvider + protected TValue FetchValue() where TStartup : StartupTaskBase, IStartupValueProvider { var task = Manager.GetStartupTask(); var v = (IStartupValueProvider)task; diff --git a/src/dotnetCampus.ApplicationStartupManager/StartupTaskMetadata.T.cs b/src/dotnetCampus.ApplicationStartupManager/StartupTaskMetadata.T.cs index d508d04..1c890b9 100644 --- a/src/dotnetCampus.ApplicationStartupManager/StartupTaskMetadata.T.cs +++ b/src/dotnetCampus.ApplicationStartupManager/StartupTaskMetadata.T.cs @@ -8,7 +8,7 @@ namespace dotnetCampus.ApplicationStartupManager /// 记录 类型中标记的从 中统一收集元数据。 /// /// - public class StartupTaskMetadata : StartupTaskMetadata where TStartupTask : StartupTask, new() + public class StartupTaskMetadata : StartupTaskMetadata where TStartupTask : StartupTaskBase, new() { /// /// 创建包含 元数据的 的新实例。 diff --git a/src/dotnetCampus.ApplicationStartupManager/StartupTaskMetadata.cs b/src/dotnetCampus.ApplicationStartupManager/StartupTaskMetadata.cs index b0aa7c6..c71a36c 100644 --- a/src/dotnetCampus.ApplicationStartupManager/StartupTaskMetadata.cs +++ b/src/dotnetCampus.ApplicationStartupManager/StartupTaskMetadata.cs @@ -4,29 +4,29 @@ using System.Threading; namespace dotnetCampus.ApplicationStartupManager { /// - /// 记录 类型中标记的从 中统一收集元数据。 + /// 记录 类型中标记的从 中统一收集元数据。 /// public class StartupTaskMetadata { - private readonly Lazy _taskLazy; + private readonly Lazy _taskLazy; private string _afterTasks; private string _beforeTasks; /// /// 创建 的新实例。 /// - /// 表示此 的唯一标识符。 - /// 实例的创建方法。 - public StartupTaskMetadata( string key, Func creator) + /// 表示此 的唯一标识符。 + /// 实例的创建方法。 + public StartupTaskMetadata( string key, Func creator) { Key = key ?? throw new ArgumentNullException(nameof(key)); - _taskLazy = new Lazy( + _taskLazy = new Lazy( creator ?? throw new ArgumentNullException(nameof(creator)), LazyThreadSafetyMode.None); } /// - /// 获取 的唯一标识符。 + /// 获取 的唯一标识符。 /// public string Key { get; } @@ -59,9 +59,9 @@ namespace dotnetCampus.ApplicationStartupManager public StartupScheduler Scheduler { get; set; } /// - /// 根据从元数据中收集到的创建 的方法获取或创建 的实例。 + /// 根据从元数据中收集到的创建 的方法获取或创建 的实例。 /// - public StartupTask Instance => _taskLazy.Value; + public StartupTaskBase Instance => _taskLazy.Value; /// /// 获取 的值,如果没有获取或设置此启动任务的关键级别,则为 。 diff --git a/src/dotnetCampus.ApplicationStartupManager/StartupTaskWrapper.cs b/src/dotnetCampus.ApplicationStartupManager/StartupTaskWrapper.cs index 86f73d8..31c2693 100644 --- a/src/dotnetCampus.ApplicationStartupManager/StartupTaskWrapper.cs +++ b/src/dotnetCampus.ApplicationStartupManager/StartupTaskWrapper.cs @@ -20,7 +20,7 @@ namespace dotnetCampus.ApplicationStartupManager public StartupCategory Categories { get; internal set; } = StartupCategory.All; - public StartupTask StartupTask { get; internal set; } + public StartupTaskBase TaskBase { get; internal set; } public bool UIOnly { get; internal set; } public StartupCriticalLevel CriticalLevel { get; set; } @@ -29,7 +29,7 @@ namespace dotnetCampus.ApplicationStartupManager StartupTaskKey = startupTaskKey; } - public async void ExecuteTask(IEnumerable dependencies, StartupContext context) + public async void ExecuteTask(IEnumerable dependencies, StartupContext context) { await Task.WhenAll(dependencies.Select(task => task.TaskResult)); #pragma warning disable CS4014 // 由于此调用不会等待,因此在调用完成前将继续执行当前方法 @@ -43,7 +43,7 @@ namespace dotnetCampus.ApplicationStartupManager //todo Tracer.Info($"[Startup]关键节点:{StartupTaskKey}开始执行"); } - var result = await StartupTask.JoinAsync(context, UIOnly); + var result = await TaskBase.JoinAsync(context, UIOnly); if (CriticalLevel == StartupCriticalLevel.Critical) {