GFramework/GFramework.Game/Config/YamlConfigTextSerializer.cs
GeWuYou 925b6ce2d2 feat(config): 添加YAML配置序列化支持并完善测试依赖
- 集成YamlDotNet库实现YAML配置文件的序列化功能
- 在配置消费者集成测试中添加抽象配置接口引用
- 在YAML配置验证测试中添加抽象配置接口引用
- 统一配置模块的依赖注入和接口抽象层次
2026-04-12 14:09:53 +08:00

33 lines
1.1 KiB
C#

using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions;
namespace GFramework.Game.Config;
/// <summary>
/// 提供可复用的 YAML 文本序列化入口,供生成配置绑定与宿主写回流程共享。
/// </summary>
public static class YamlConfigTextSerializer
{
private static readonly ISerializer Serializer = new SerializerBuilder()
.WithNamingConvention(CamelCaseNamingConvention.Instance)
.DisableAliases()
.ConfigureDefaultValuesHandling(DefaultValuesHandling.Preserve)
.Build();
/// <summary>
/// 将配置对象序列化为 YAML 文本。
/// </summary>
/// <typeparam name="TValue">配置对象类型。</typeparam>
/// <param name="value">要序列化的配置对象。</param>
/// <returns>带尾随换行的 YAML 文本。</returns>
public static string Serialize<TValue>(TValue value)
{
ArgumentNullException.ThrowIfNull(value);
var yaml = Serializer.Serialize(value);
return yaml.EndsWith('\n')
? yaml
: $"{yaml}{Environment.NewLine}";
}
}