Один из способов решения этой проблемы состоит в том, чтобы ваш класс реализовал интерфейс IXmlSerializable
.Реализация этого интерфейса вынуждает сериализатор вызывать «переопределенные» WriteXml
и ReadXml
методы.
что-то вроде этого:
public void WriteXml(XmlWriter w)
{
wr.WriteStartElement("playersConnected");
w.WriteElementString("name", Name);
w.WriteElementString("connected-on" , ConnectedOn.ToString("dd.MM.yyyy HH:mm:ss"));
//etc...
}
и когда вы читаете его:
DateTimeOffset offset;
if(DateTimeoffset.TryParse(reader.Value, out offset))
{
connectedOn = offset;
}
это хлопотно, но я не могу по-другому.также это решение дает вам полный контроль над процессом сериализации (это положительный момент)
, если вам нравится это решение и вы хотите получить полное, пожалуйста, прокомментируйте, и я запишу его
относительно пространств имен- Я не думаю, что вы можете избавиться от этого (вероятно, я не получу бонусный балл).