Usando "para XML" com a serialização XML com o tipo DateTime
-
22-09-2019 - |
Pergunta
Estou tendo problemas tentando adicionar algumas datas a uma classe pré-existente carregada via serialização XML, e não está fazendo o que eu pensava que deveria fazer.
Eu bata em um teste básico com sql de (onde efetivos e efetivos são declarados como DATETIME
)
SELECT o.EffectiveFrom AS [@EffectiveFrom],
o.EffectiveTo AS [@EffectiveTo],
FROM dbo.MyObject o
FOR XML PATH('MyObject'), ROOT('ArrayOfMyObject'), type
Que dá xml:
<ArrayOfMyObject>
<MyObject EffectiveFrom="1977-11-23T00:00:00" EffectiveTo="2050-01-01T00:00:00" />
</ArrayOfMyObject>
Então eu declarei a classe como:
public class MyObject
{
[XmlAttribute("EffectiveFrom")]
public DateTime EffectiveFrom { get; set; }
[XmlAttribute("EffectiveTo")]
public DateTime EffectiveTo { get; set; }
}
No entanto, as propriedades não estão sendo definidas. Eu posso estar tendo "um dia grosso" e perdendo o ofuscante óbvio, mas eu esperaria que isso "apenas funcionasse" - alguma idéia de por que não é?
Eu realmente terei que criar algumas propriedades de string que chamam Date.ParseExact()
no set, e ToString()
na obtenção, sinalizando isso para a serialização XML e sinalizando as propriedades reais como XmlIgnore()
?
Solução 2
Parece "apenas trabalhar" com o SQL Server 2008, onde estávamos usando o SQL Server 2005 com antecedência
Outras dicas
Não vejo uma tag de fechamento para <Object>?