Как десериализовать пропущенное логическое поле в TRUE - PullRequest
2 голосов
/ 04 октября 2010

Я десериализирую пользовательский объект из файла в объект в моем приложении, используя XmlSerializer. Моя проблема заключается в том, что я хочу, чтобы для поля в объекте по умолчанию было установлено значение "True", а не "False", для нового свойства, которое не существует в файле, из которого я десериализуем.1004 * По умолчанию .Net присваивает этому значению значение false, поскольку оно не существует в файле, и я хочу, чтобы оно по умолчанию имело значение True, если оно не существует.Я использовал атрибут System.ComponentModel.DefaultValue (True) для поля в определении объекта, но это не сработало.Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

1 голос
/ 04 октября 2010

Вы можете установить значение логического значения в пустом конструкторе вашего объекта напрямую.Таким образом, десериализатор создаст десериализованный объект со значением true в логическом значении.

0 голосов
/ 30 мая 2011

По какой-то причине это не сработало для меня, когда я десериализовал поле, которое было другим классом объектов, имеющим логическое свойство. Может быть, я что-то пропустил, но я просто сделал логическое значение NULL (bool?) И после десериализации установил для логического значения значение true, если оно было нулевым.

...