Отметка времени не записывается во время поиска XML - PullRequest
0 голосов
/ 12 марта 2012

Я пытаюсь написать

XmlSerializer xs = new XmlSerializer(object);
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.ASCII);
xs.Serialize(xmlTextWriter, obj);
xmlString = ASCIIByteArrayToString(memoryStream.ToArray())

после удаления сериализованного значения с отметкой времени, почему? и как я могу сериализовать значение формата метки времени в C #?

1 Ответ

0 голосов
/ 13 марта 2012

Есть несколько вещей, которые нужно проверить.Сначала следующая строка:

XmlSerializer xs = new XmlSerializer(object);

Это недопустимый C # и он не будет компилироваться.Я думаю, что вы имели в виду:

XmlSerializer xs = new XmlSerializer(obj.GetType());

Затем убедитесь, что Timestamp является свойством этого объекта, в котором есть общедоступный метод получения и установки для сериализации XML.

Пример:

public class Foo
{
    public DateTime Timestamp { get; set; }
}

и затем:

var obj = new Foo
{
    Timestamp = DateTime.Now
};

var xs = new XmlSerializer(obj.GetType());
using (var stream = new MemoryStream())
{
    xs.Serialize(stream, obj);
    string xml = Encoding.UTF8.GetString(stream.ToArray());
}

производит:

<?xml version="1.0"?>
<Foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Timestamp>2012-03-13T08:21:12.5391233+01:00</Timestamp>
</Foo>
...