Как получить десериализацию .Net XML для сохранения DateTimeKind? - PullRequest
1 голос
/ 12 марта 2011

У меня есть строка XML со следующей датой: 2001-01-01T03: 40: 00Z

Обратите внимание, как это заканчивается на Z, чтобы указать UTC.

Я десериализовал так:

using (StringReader stringReader = new StringReader(xmlString))
    using (XmlReader xmlReader = XmlReader.Create(stringReader))
        obj = (MyObject)sr.ReadObject(xmlReader);

Но когда я перехожу к соответствующим полям DateTime в результирующем объекте, поле Kind устанавливается на «Unspecified», а не на «Utc», что и должно быть.Как мне обойти эту ошибку?

1 Ответ

2 голосов
/ 12 марта 2011

Поле Kind не имеет установщика, поэтому XmlSerializer не сможет его установить.

Многие рекомендуют всегда сериализовывать время как UTC, а затем вызывать ToLocalTime, если вам это нужно.

См. это .

...