GFramework/GFramework.Core/architecture/FunctionalArchitectureOptions.cs
GwWuYou bb403bd454 feat(architecture): 添加架构配置选项支持
新增 `IArchitectureOptions` 接口及其实现类 `FunctionalArchitectureOptions`,
用于控制架构行为,如阶段验证严格性和延迟注册许可。
同时为 `Architecture<T>` 类添加虚属性 `Options`,默认返回功能型选项实例。
修改了阶段转换验证、系统/模型注册时机检查逻辑,以支持通过选项动态控制其行为。
调整部分代码格式以提升可读性。
2025-12-21 14:35:55 +08:00

27 lines
1.2 KiB
C#

namespace GFramework.Core.architecture;
/// <summary>
/// 函数式架构选项实现,支持匿名实现
/// </summary>
public class FunctionalArchitectureOptions(Func<bool> strictPhaseValidation, Func<bool> allowLateRegistration)
: IArchitectureOptions
{
/// <summary>
/// 初始化 FunctionalArchitectureOptions 类的新实例
/// </summary>
/// <param name="strictPhaseValidation">用于确定是否启用严格阶段验证的函数</param>
/// <param name="allowLateRegistration">用于确定是否允许延迟注册的函数</param>
private readonly Func<bool> _strictPhaseValidation = strictPhaseValidation ?? throw new ArgumentNullException(nameof(strictPhaseValidation));
private readonly Func<bool> _allowLateRegistration = allowLateRegistration ?? throw new ArgumentNullException(nameof(allowLateRegistration));
/// <summary>
/// 获取一个值,该值指示是否启用严格阶段验证
/// </summary>
public bool StrictPhaseValidation => _strictPhaseValidation();
/// <summary>
/// 获取一个值,该值指示是否允许延迟注册
/// </summary>
public bool AllowLateRegistration => _allowLateRegistration();
}