С YamlDo tNet Я получаю непоследовательную сериализацию. Я сериализуюсь с помощью базового c сериализатора:
new YamlDotNet.Serialization.SerializerBuilder()
.DisableAliases()
.ConfigureDefaultValuesHandling(DefaultValuesHandling.OmitDefaults)
.Build()
.Serialize(target)
Когда я сериализую простой анонимный объект, он работает более или менее правильно, расширяя многострочные строки с помощью YAML Multiline Guide . У него двойные переводы строк, что похоже на ошибку, описанную в в этом вопросе , но в остальном является правильным.
Так что, если я сериализую:
new {
A = 1,
B = "Testing",
Group1 = new {
Field1 = "Test 1\r\n\"This\"",
Field2 = "Test 2\r\n'That'"
}
}.ToYaml()
, я получаю примерно то, что ожидаю (кроме двойных строк):
A: 1
B: Testing
Group1:
Field1: >-
Test 1
"This"
Field2: >-
Test 2
'That'
Пока все хорошо. Когда я пытаюсь сериализовать реальный объект, который выглядит следующим образом, в JSON:
{
"Parameters": {
"CommitmentSpecIds": {
"Choices": {
"1060": "Location"
}
},
"DisplayValue": {
"Text": "LOC: {{Question.Schedule->LocationName}}"
},
"Tooltip": {
"Text": "Staff: {{Question.Schedule->StaffName}}\nAppointment: {{Question.Schedule->ScheduleDate@d}}"
}
}
}
, я получаю строки, заключенные в двойные кавычки, если в них есть какие-либо символы новой строки, как в JSON ,
Parameters:
CommitmentSpecIds:
Choices:
1060: Location
DisplayValue:
Text: 'LOC: {{Question.Schedule->LocationName}}'
Tooltip:
Text: "Staff: {{Question.Schedule->StaffName}}\nAppointment: {{Question.Schedule->ScheduleDate@d}}"
Я искал пару часов, но предположил, что мне не хватает чего-то простого.
Как заставить Folded Block Scalar Style
для всех строк с переводом строки.