C # сериализация класса в XML, где одним из свойств класса является DateTime. Как сделать это свойство в формате ISO? - PullRequest
11 голосов
/ 18 ноября 2008

Я сериализирую класс, который содержит свойство DateTime.

public DateTime? Delivered { get; set; }

После сериализации узел Delivered содержит DateTime, отформатированный так:

2008-11-20T00:00:00

Как я могу изменить это свойство, чтобы оно выглядело так:

2008-11-20 00:00:00

Заранее спасибо

Ответы [ 2 ]

20 голосов
/ 18 ноября 2008

Хак, который я использую для нечетного форматирования во время XmlSerialization, должен иметь специальное свойство, которое используется только во время XmlSerialization

//normal DateTime accessor
[XmlIgnore]
public DateTime Delivered { get; set; }

//special XmlSerialization accessor
[XmlAttribute("DateTime")]
public string XmlDateTime
{
    get { return this.Delivered.ToString("o"); }
    set { this.Delivered = new DateTime.Parse(value); }
}
1 голос
/ 18 ноября 2008

Взгляните на XmlAttributeOverrides class .

...