mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
- 在架构中新增 _mContextUtilities 集合存储未初始化的上下文工具 - 实现工具注册时根据初始化状态决定是否立即初始化上下文工具 - 添加 BeforeUtilityInit 和 AfterUtilityInit 两个新的架构阶段 - 更新架构阶段转换配置以支持工具初始化流程 - 在同步和异步架构测试中验证新的初始化阶段序列 - 完善架构初始化流程日志记录和调试信息
49 lines
2.0 KiB
C#
49 lines
2.0 KiB
C#
using System.Collections.Immutable;
|
|
using GFramework.Core.Abstractions.enums;
|
|
|
|
namespace GFramework.Core.architecture;
|
|
|
|
/// <summary>
|
|
/// 架构常量类,定义了架构阶段转换规则
|
|
/// </summary>
|
|
public static class ArchitectureConstants
|
|
{
|
|
/// <summary>
|
|
/// 定义架构阶段之间的有效转换关系
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// 键为当前架构阶段,值为从该阶段可以转换到的下一阶段数组
|
|
/// </remarks>
|
|
public static readonly ImmutableDictionary<ArchitecturePhase, ArchitecturePhase[]> PhaseTransitions =
|
|
new Dictionary<ArchitecturePhase, ArchitecturePhase[]>
|
|
{
|
|
{ ArchitecturePhase.None, [ArchitecturePhase.BeforeUtilityInit] },
|
|
{
|
|
ArchitecturePhase.BeforeUtilityInit,
|
|
[ArchitecturePhase.AfterUtilityInit, ArchitecturePhase.FailedInitialization]
|
|
},
|
|
{
|
|
ArchitecturePhase.AfterUtilityInit,
|
|
[ArchitecturePhase.BeforeModelInit, ArchitecturePhase.FailedInitialization]
|
|
},
|
|
{
|
|
ArchitecturePhase.BeforeModelInit, [
|
|
ArchitecturePhase.AfterModelInit, ArchitecturePhase.FailedInitialization
|
|
]
|
|
},
|
|
{
|
|
ArchitecturePhase.AfterModelInit, [
|
|
ArchitecturePhase.BeforeSystemInit, ArchitecturePhase.FailedInitialization
|
|
]
|
|
},
|
|
{
|
|
ArchitecturePhase.BeforeSystemInit, [
|
|
ArchitecturePhase.AfterSystemInit, ArchitecturePhase.FailedInitialization
|
|
]
|
|
},
|
|
{ ArchitecturePhase.AfterSystemInit, [ArchitecturePhase.Ready, ArchitecturePhase.FailedInitialization] },
|
|
{ ArchitecturePhase.Ready, [ArchitecturePhase.Destroying] },
|
|
{ ArchitecturePhase.FailedInitialization, [ArchitecturePhase.Destroying] },
|
|
{ ArchitecturePhase.Destroying, [ArchitecturePhase.Destroyed] }
|
|
}.ToImmutableDictionary();
|
|
} |