0 votes

Utilisation de "FOR XML" avec la sérialisation XML avec le type DATETIME

J'ai des problèmes en essayant d'ajouter des dates à une classe préexistante chargée par sérialisation XML, et cela ne fait pas ce que je pensais qu'il fallait faire.

J'ai mis au point un test de base avec SQL of (où EffectiveFrom et EffectiveTo sont déclarés en tant que DATETIME )

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

Ce qui donne XML :

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

Puis j'ai déclaré la classe comme :

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

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

Cependant, les propriétés ne sont pas définies. Il se peut que j'aie juste une "grosse journée" et que je ne comprenne pas ce qui est évident, mais je m'attendais à ce que cela "fonctionne" - avez-vous une idée de la raison pour laquelle ce n'est pas le cas ?

Devrai-je vraiment créer des propriétés de type chaîne qui appellent Date.ParseExact() sur l'ensemble, et ToString() sur le get, en le marquant pour la sérialisation XML, et en marquant les propriétés réelles en tant que XmlIgnore() ?

0voto

Preets Points 1877

Je ne vois pas de balise de fermeture pour < MyObject > ?

0voto

Rowland Shaw Points 22860

Il semble que cela fonctionne simplement avec SQL Server 2008, alors que nous utilisions auparavant SQL Server 2005.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X