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