Сериализация. XmlSerializer. Не сериализуются поля, значения которых пустое. т.е. null - C#
Формулировка задачи:
Приведу пример класса. Он будет являться шаблонным т.к. на деле он выглядит намного больше. и это будет неэстетично запостить его сюда)).
Есть класс:
В случае если поля пустые, то после сериализации этого класса выходной XML файл получается таким:
А нужно чтобы получился таким:
Может кто нибудь знает причину, почему так приосходит?
Пытался решить эту проблему получилось так: operatingSystem.Version = ""; - и в этом случае всё ок. но не реально каждому полю присваивать пустое значение.
class OperatingSystem { string _caption; string _version; string _csdVersion; string _description; string _registeredUser; string _serialNumber; string _organization; string _installDate; [XmlAttribute] public string Caption { get { return _caption; } set { _caption = value; } } [XmlAttribute] public string Version { get { return _version; } set { _version = value; } } [XmlAttribute] public string CSDVersion { get { return _csdVersion; } set { _csdVersion = value; } } [XmlAttribute] public string Description { get { return _description; } set { _description = value; } } [XmlAttribute] public string RegisteredUser { get { return _registeredUser; } set { _registeredUser = value; } } [XmlAttribute] public string SerialNumber { get { return _serialNumber; } set { _serialNumber = value; } } [XmlAttribute] public string Organization { get { return _organization; } set { _organization = value; } } [XmlAttribute] public string InstallDate { get { return _installDate; } set { _installDate = value; } } }
<operatingSystem />
<operatingSystem Caption="" Version="" CSDVersion="" Description="" RegisteredUser="" SerialNumber="" Organization="" InstallDate="" />
Решение задачи: «Сериализация. XmlSerializer. Не сериализуются поля, значения которых пустое. т.е. null»
textual
Листинг программы
[XmlAttribute] public string Version { get { return _version ?? ""; } set { _version = value; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д