簡體   English   中英

我是否需要序列化抽象基類以使派生類可序列化

[英]Do I need to serialize the abstract base class to make the derived classes serializable

我正在嘗試將一個對象存儲在Session變量中,我將該類標記為可序列化。 但是,該類派生自未序列化的抽象基類。 我收到一個錯誤。 問題是我在開發機器上沒有任何錯誤,而只是在我無法訪問的生產和登台區域中。 我不需要序列化類來將對象存儲到我的開發機中的會話中,但是在暫存環境中它給出了序列化錯誤。 因此,我將該類標記為可序列化,並請求在暫存環境中進行部署。 現在,我再次遇到序列化錯誤,該錯誤指示基類未標記為可序列化。 我是否還需要序列化基類。

public abstract class A
{
    ///Properties
}
[Serializable]
public class B:A
{
      ///Properties
}

是的,例外情況表明:

程序集“ ...”中的類型“ A”未標記為可序列化

因此,要解決您的問題,請在A類中也添加一個[Serializable]

另一方面,該屬性不會被繼承,因此,如果僅將其添加到A,則B不會被視為可序列化的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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