Вопрос

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

Я провел базовый тест с помощью SQL (где EconomicFrom и эффективныхTo объявлены как DATETIME)

SELECT  o.EffectiveFrom AS [@EffectiveFrom],
        o.EffectiveTo   AS [@EffectiveTo],
FROM    dbo.MyObject o
FOR XML PATH('MyObject'), ROOT('ArrayOfMyObject'), type

Что дает XML:

<ArrayOfMyObject>
  <MyObject EffectiveFrom="1977-11-23T00:00:00" EffectiveTo="2050-01-01T00:00:00" />
</ArrayOfMyObject>

Затем я объявил класс как:

public class MyObject
{
    [XmlAttribute("EffectiveFrom")]
    public DateTime EffectiveFrom { get; set; }

    [XmlAttribute("EffectiveTo")]
    public DateTime EffectiveTo { get; set; }
}

Однако свойства не задаются.Возможно, у меня просто «тяжелый день» и я упускаю из виду ослепляющую очевидность, но я ожидал, что это «просто сработает» - есть идеи, почему это не так?

Действительно ли мне придется создавать некоторые строковые свойства, которые вызывают Date.ParseExact() на съемочной площадке и ToString() при получении, отмечая это для сериализации XML и отмечая реальные свойства как XmlIgnore()?

Это было полезно?

Решение 2

Похоже, что «просто работает» с SQL Server 2008, тогда как до этого мы использовали SQL Server 2005.

Другие советы

Я не вижу закрывающего тега для <MyObject>?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top