[英]Deserialization behaviour
我有可序列化的課程
[Serializable]
public class Entity
{
public Guid? SomeId {get;set;}
...
}
在數據庫中,它具有SomeId == null從數據庫中還原時,它具有SomeId == Guid.Empty,但是如果我添加emty默認構造函數,它將使用SomeId == null進行還原。
任何人都可以解釋這種行為。
謝謝
序列化程序需要空的構造函數來創建Entity
的實例。 創建此實例后,它將執行反序列化:使用其序列化值設置各個屬性。 這就是財產設定者也必須公開的原因。
為了找出您的實際問題,您可以開始驗證數據是否已正確序列化。
我假設您正在使用OR映射器軟件。 在那種情況下,也可能是OR映射器正在使用默認值初始化SomeId
屬性。
因為您使用Nullable類型Guid嗎? ,則添加emty默認構造函數,以便SomeId為null。
例如:如果您使用公共布爾? IsTrue {獲取; 組; },可以為IsTrue屬性分配值true或false或null。 詳細信息msdn中的可空類型: http : //msdn.microsoft.com/zh-cn/library/1t3y8s4s (v = vs.80) .aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.