Сериализация. 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; }
}