Я использую следующий фрагмент кода для сериализации динамической модели проекта в строку (которая в конечном итоге экспортируется в файл YAML).
dynamic exportModel = exportModelConvertor.ToDynamicModel(project);
var serializerBuilder = new SerializerBuilder();
var serializer = serializerBuilder.EmitDefaults().DisableAliases().Build();
using (var sw = new StringWriter())
{
serializer.Serialize(sw, exportModel);
string result = sw.ToString();
}
Любые многострочные строки, такие как следующие:
propertyName = "One line of text
followed by another line
and another line"
экспортируются в следующем формате:
propertyName: >
One line of text
followed by another line
and another line
Обратите внимание на дополнительные (нежелательные) разрывы строк.
В соответствии с этим Многострочное руководство YAML, используемый здесь формат - скалярный стиль сложенного блока. Есть ли способ использовать YamlDotNet для изменения стиля этого вывода для всех свойств многострочных строк на скалярный стиль литерального блока или один из скалярных стилей потока?
В документации YamlDotNet показано, как применять ScalarStyle.DoubleQuoted к определенному свойству с помощью WithAttributeOverride, но для этого требуется имя класса, а модель для сериализации - динамическая. Это также требует перечисления каждого свойства для изменения (из которых есть много). Я хотел бы изменить стиль для всех свойств многострочных строк сразу.