Причина, по которой YamlDo tNet сериализует только свойства publi c по умолчанию, заключается в том, что в противном случае инкапсуляция нарушится. Доступ к закрытым членам будет означать, что модель не сможет гарантировать свои инварианты. Если вы сравните с другими библиотеками, такими как Json. NET, вы заметите, что они используют тот же подход.
Я не думаю, что это проблема, потому что вы не должны (de ) сериализацию вашей модели предметной области напрямую. Это ограничит вашу модель предметной области схемой сериализации, которая во многих случаях должна быть другой. Это та же проблема, что и при попытке сопоставить модель предметной области с реляционной базой данных.
Вместо этого вы должны определить модель сериализации и сопоставить модель предметной области и эту модель сериализации. В этом случае нет необходимости сериализовать частные поля.
Тем не менее, если вы действительно хотите сериализовать частные поля, это тривиально. Вам необходимо зарегистрировать собственную реализацию ITypeInspector
, которая возвращает частные поля. Вы можете основывать свою реализацию на ReadableFieldsTypeInspector
.