DATETIME 型の XML シリアル化での「FOR XML」の使用
-
22-09-2019 - |
質問
XML シリアル化を介して読み込まれる既存のクラスに日付を追加しようとすると問題が発生し、期待どおりの動作が行われません。
SQL を使用して基本的なテストを実行しました (EffectiveFrom とEffectiveTo は次のように宣言されています) 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 2005の事前
を使用してのだとしてSQL Server 2008で、と "ちょうど仕事" に見えます他のヒント
私は
所属していません StackOverflow