mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 19:03:29 +08:00
- 将 CurrentPhase 属性改为公共读取私有设置 - 在 Initialize 和 InitializeAsync 方法中添加异常处理机制 - 添加 ArchitectureFailedInitializationEvent 事件类型 - 定义架构阶段转换规则,支持失败初始化状态转换 - 添加 FailedInitialization 枚举值 - 在同步测试架构中添加后注册钩子功能 - 重构测试基类,移除重复的测试方法 - 添加架构初始化失败时的错误日志记录 - 实现初始化失败时自动进入 FailedInitialization 阶段
41 lines
1.7 KiB
C#
41 lines
1.7 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.BeforeModelInit] },
|
|
{
|
|
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();
|
|
} |