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()?

Foi útil?

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>?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top