You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1009 B
34 lines
1009 B
using Common.YamlDotNet;
|
|
using YamlDotNet.Serialization;
|
|
using YamlDotNet.Serialization.NamingConventions;
|
|
|
|
namespace TrashLib.Config;
|
|
|
|
public class YamlSerializerFactory : IYamlSerializerFactory
|
|
{
|
|
private readonly IObjectFactory _objectFactory;
|
|
|
|
public YamlSerializerFactory(IObjectFactory objectFactory)
|
|
{
|
|
_objectFactory = objectFactory;
|
|
}
|
|
|
|
public IDeserializer CreateDeserializer()
|
|
{
|
|
return new DeserializerBuilder()
|
|
.WithNamingConvention(UnderscoredNamingConvention.Instance)
|
|
.WithTypeConverter(new YamlNullableEnumTypeConverter())
|
|
.WithNodeTypeResolver(new ReadOnlyCollectionNodeTypeResolver())
|
|
.WithObjectFactory(_objectFactory)
|
|
.Build();
|
|
}
|
|
|
|
public ISerializer CreateSerializer()
|
|
{
|
|
return new SerializerBuilder()
|
|
.WithNamingConvention(UnderscoredNamingConvention.Instance)
|
|
.WithTypeConverter(new YamlNullableEnumTypeConverter())
|
|
.Build();
|
|
}
|
|
}
|