Пытается использовать сериализатор YAMLDOTNET, имея некоторые проблемы, когда у меня есть и объект, который состоит не из простых строк, но также имеет специальный объект внутри.Использование объектов внутри объектов
При сериализации я просто получу строку {}. Если, например, в примере Serializing an object graph мы определяем структуру Address. Затем мы создаем новый объект класса Address внутри, который в конечном итоге присваивается в квитанции, результаты будут также {} в поле адреса в файле yaml.
Образец кода также можно увидеть here. Это создаст вывод, который выглядит следующим образом:
receipt: Oz-Ware Purchase Invoice
date: 2007-08-06T00:00:00.0000000
customer:
given: Dorothy
family: Gale
items:
- part_no: A4786
descrip: Water Bucket (Filled)
price: 1.47
quantity: 4
- part_no: E1628
descrip: High Heeled "Ruby" Slippers
price: 100.27
quantity: 1
bill_to: &o0 {}
ship_to: *o0
Так bill_to будет выглядеть как {}
Этот вид решения проблемы, но вот что я использую атрибут MarshalAs в полях, и этот атрибут нельзя использовать со свойствами. – OscarSanhueza
Это немного сложно, когда я использую одну и ту же структуру для загрузки того, что находится в поле YAML, в приложение реального времени, которое нуждается в этих упорядоченных структурах. Вы знаете, почему YamlDotNet не сериализует также поля? – OscarSanhueza
Я не уверен, почему он не сериализует поля. Метод 'GetProperties()' в [ЯмлАтрибутТипИнспектор] (https://github.com/aaubry/YamlDotNet/blob/master/YamlDotNet/Serialization/YamlAttributesTypeInspector.cs) имеет логику, которая определяет, какие свойства становятся сериализованы. – matthewrwilton