diff --git a/AtsEx.PluginHost/Helpers/LoadErrorManager.cs b/AtsEx.PluginHost/Helpers/LoadErrorManager.cs index 3644cd8b..08ce84b8 100644 --- a/AtsEx.PluginHost/Helpers/LoadErrorManager.cs +++ b/AtsEx.PluginHost/Helpers/LoadErrorManager.cs @@ -10,7 +10,25 @@ namespace Automatic9045.AtsEx.PluginHost.Helpers { public static partial class LoadErrorManager { - public static LoadErrorList Errors { get; } = new LoadErrorList(); + static LoadErrorManager() + { + if (InstanceStore.IsInitialized) + { + Initialize(); + } + else + { + InstanceStore.Initialized += e => Initialize(); + } + } + + private static void Initialize() + { + Errors = new LoadErrorList(); + } + + + public static LoadErrorList Errors { get; private set; } public static void Throw(string text, string senderFileName, int lineIndex, int charIndex) diff --git a/AtsEx.PluginHost/InstanceStore.cs b/AtsEx.PluginHost/InstanceStore.cs index ef6d3d4d..69f4503a 100644 --- a/AtsEx.PluginHost/InstanceStore.cs +++ b/AtsEx.PluginHost/InstanceStore.cs @@ -8,6 +8,7 @@ namespace Automatic9045.AtsEx.PluginHost { + internal delegate void InitializedEventHandler(EventArgs e); internal delegate void ClosingEventHandler(EventArgs e); public static class InstanceStore @@ -20,6 +21,7 @@ public static class InstanceStore private static IBveHacker bveHacker; internal static IBveHacker BveHacker => IsInitialized ? bveHacker : throw new InvalidOperationException($"{nameof(InstanceStore)} は初期化されていません。"); + internal static event InitializedEventHandler Initialized; internal static event ClosingEventHandler Closing; public static void Initialize(IApp app, IBveHacker bveHacker) @@ -29,6 +31,8 @@ public static void Initialize(IApp app, IBveHacker bveHacker) InstanceStore.app = app; InstanceStore.bveHacker = bveHacker; + + Initialized?.Invoke(EventArgs.Empty); } public static void Dispose()