Skip to content

Serializer/Deserializer mismatch if string contains "?" #153

Description

@n9
var serialized = YamlSerializer.Serialize(new Foo
{
	Bar = "?"
});
Console.WriteLine(serialized);

try
{
	YamlSerializer.Deserialize<Foo>(serialized);
}
catch (Exception e)
{
	Console.WriteLine(e.ToString());
}

Output:

Bar: ?

SharpYaml.SyntaxErrorException: (Lin: 0, Col: 5, Chr: 5) - (Lin: 0, Col: 5, Chr: 5): Mapping keys are not allowed in this context.
   at SharpYaml.Scanner`1.FetchKey()
   at SharpYaml.Scanner`1.FetchNextToken()
   at SharpYaml.Scanner`1.FetchMoreTokens()
   at SharpYaml.Scanner`1.InternalMoveNext()
   at SharpYaml.Parser`1.GetCurrentToken()
   at SharpYaml.Parser`1.ParseBlockMappingValue()
   at SharpYaml.Serialization.YamlReader.YamlReaderState.Read()
   at SharpYaml.Serialization.Converters.YamlObjectConverter`1.ReadObjectCore(YamlReader reader, Contract contract)
   at SharpYaml.Serialization.Converters.YamlObjectConverter`1.Read(YamlReader reader)
   at SharpYaml.Serialization.YamlConverter`1.Read(YamlReader reader, Type typeToConvert)
   at SharpYaml.ReflectionYamlTypeInfoResolver.ReflectionYamlTypeInfo.ReadAsObject(YamlReader reader)
   at SharpYaml.YamlSerializer.DeserializeCore(YamlTypeInfo typeInfo, String yaml)
   at SharpYaml.YamlSerializer.Deserialize(String yaml, Type returnType, YamlSerializerOptions options)
   at SharpYaml.YamlSerializer.Deserialize[T](String yaml, YamlSerializerOptions options)
   at UserQuery.Main() in C:\Users\user\AppData\Local\Temp\LINQPad9\_hkkyucig\nkvsdp\LINQPadQuery:line 12

Version: 3.11.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions