0

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()set とgetを呼び出すいくつかの文字列プロパティを作成ToString()し、XML シリアライゼーションのフラグを立て、実際のプロパティを としてフラグを立てる必要がありますXmlIgnore()か?

4

2 に答える 2

0

以前はSQLServer2005を使用していたのに対し、SQLServer2008では「正常に機能」しているように見えます

于 2010-02-09T14:01:20.823 に答える