using YamlDotNet.Serialization;
public static void Main()
var deserializer = new Deserializer();
deserializer.RegisterTagMapping("tag:yaml.org,2002:binary", typeof(byte[]));
deserializer.RegisterTypeConverter(new ByteArrayConverter());
var bytes = deserializer.Deserialize<byte[]>(new StringReader("!!binary AQID"));
var serializer = new Serializer();
serializer.RegisterTypeConverter(new ByteArrayConverter());
serializer.Serialize(Console.Out, new
binary = new byte[] { 1, 2, 3 }
public class ByteArrayConverter : IYamlTypeConverter
public bool Accepts(Type type)
return type == typeof(byte[]);
public object ReadYaml(IParser parser, Type type)
var scalar = (YamlDotNet.Core.Events.Scalar)parser.Current;
var bytes = Convert.FromBase64String(scalar.Value);
public void WriteYaml(IEmitter emitter, object value, Type type)
var bytes = (byte[])value;
emitter.Emit(new YamlDotNet.Core.Events.Scalar(
"tag:yaml.org,2002:binary",
Convert.ToBase64String(bytes),