bool プロパティを持つ単純なクラスがあります。このプロパティの「Get」ロジックはストアド プロシージャを実行して、データベースからビット フィールドを返します。
次に、このクラスをシリアル化し、データベースの XML フィールドに保存します。クラスと bool プロパティは問題なく保存されます。
私が抱えているように見える問題は、このクラスを逆シリアル化するときです。クラスは正常にデシリアライズされますが、bool フィールドを駆動するデータが更新されると、クラスは XML でシリアル化されたもののみを認識し、データベースを参照して新しい bool 値を取得しないようです (実行されません)。新しく更新されたビットフィールドを取得する私の手順)。
私の解決策は、このフィールドに XmlIgnoreAttribute 属性を追加して、最初からシリアル化されないようにすることでした。しかし、誰かがこれに気づいたり、.NET XmlSerializer クラスの内部動作を理解するのに役立つかどうか疑問に思っています。
ありがとう!
[XmlIgnoreAttribute]
public bool IsUpdated
{
get
{
DataTable dtResults = mclsSQLServerTool.LoadDataTable("exec stp_RL_SEL_NameIsUpdated '" + mstrName + "'");
bool blnIsUpdated = Convert.ToBoolean(dtResults.Rows[0]["RU_bitIsUpdated"]);
return blnIsUpdated;
}
}