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