mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-07 17:21:16 +08:00
- 修复 Mediator 集成测试中的阻塞等待、缓存竞态与共享状态原子性问题 - 补充 YamlConfig 运行时模型的构造期约束与 exception XML 文档 - 新增 模型契约回归测试并更新 analyzer warning reduction 恢复文档
43 lines
1.5 KiB
C#
43 lines
1.5 KiB
C#
namespace GFramework.Game.Config;
|
|
|
|
/// <summary>
|
|
/// 表示一个对象节点上声明的 object-focused <c>if</c> / <c>then</c> / <c>else</c> 条件约束。
|
|
/// 三个分支都共享父对象已声明字段集合,不会把分支 schema 扩展成新的生成类型形状。
|
|
/// </summary>
|
|
internal sealed class YamlConfigConditionalSchemas
|
|
{
|
|
/// <summary>
|
|
/// 初始化条件分支约束模型。
|
|
/// </summary>
|
|
/// <param name="ifSchema">条件判断 schema。</param>
|
|
/// <param name="thenSchema">条件命中时需要满足的 schema。</param>
|
|
/// <param name="elseSchema">条件未命中时需要满足的 schema。</param>
|
|
/// <exception cref="ArgumentNullException">当 <paramref name="ifSchema"/> 为 <see langword="null" /> 时抛出。</exception>
|
|
public YamlConfigConditionalSchemas(
|
|
YamlConfigSchemaNode ifSchema,
|
|
YamlConfigSchemaNode? thenSchema,
|
|
YamlConfigSchemaNode? elseSchema)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(ifSchema);
|
|
|
|
IfSchema = ifSchema;
|
|
ThenSchema = thenSchema;
|
|
ElseSchema = elseSchema;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取条件判断 schema。
|
|
/// </summary>
|
|
public YamlConfigSchemaNode IfSchema { get; }
|
|
|
|
/// <summary>
|
|
/// 获取条件命中时需要满足的 schema。
|
|
/// </summary>
|
|
public YamlConfigSchemaNode? ThenSchema { get; }
|
|
|
|
/// <summary>
|
|
/// 获取条件未命中时需要满足的 schema。
|
|
/// </summary>
|
|
public YamlConfigSchemaNode? ElseSchema { get; }
|
|
}
|