簡體   English   中英

反序列化行為

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM