using YamlDotNet.Core.Events;
using YamlDotNet.Serialization;
public static void Main()
var templatedValueDeserializer = new TemplatedValueDeserializer("world");
var deserializer = new DeserializerBuilder()
.WithNodeDeserializer(templatedValueDeserializer)
var yaml = @"Text: Hello {{name}}";
var data = deserializer.Deserialize<Document>(yaml);
public string Text { get; set; }
public class TemplatedValueDeserializer : INodeDeserializer
public TemplatedValueDeserializer(string name)
bool INodeDeserializer.Deserialize(IParser parser, Type expectedType, Func<IParser, Type, object> nestedObjectDeserializer, out object value)
if (expectedType != typeof(string))
var scalar = parser.Allow<Scalar>();
var template = scalar.Value;
value = template.Replace("{{name}}", name);