簡體   English   中英

C#序列化對象集合

[英]C# Serializing a Collection of Objects

我正在使用ASP.NET應用程序,該應用程序具有繼承自定義對象列表的類。

public class UserRoleList : List<UserRoleBO> {
    public UserRoleList() { }
}

如何使此類在C#中可序列化?

我相信您真的只需要確保UserRoleBO是可序列化的,並且該列表會自行處理。 假定要序列化的值是UserRoleBO和UserList上的公共屬性。 有關更多信息,請參見ISerializable接口的作用是什么?

您需要執行以下操作

  1. 確保UserRoleList可序列化
  2. 確保UserRoleBO可序列化
  3. 確保UserRoleBO內所有字段的類型可序列化(這是遞歸的)

最簡單的方法是將[Serializable]屬性添加到類中。 在大多數情況下,這將起作用。

另一方面,從List<T>派生通常是個壞主意。 該類不是要派生的,任何專門化其行為的嘗試都可以在通過List<T>引用使用派生類的場景中被阻止。 您能否解釋為什么要以這種方式導出? 可能會有一個更強大的解決方案。

像這樣:

[Serializable]
public class UserRoleList : List<UserRoleBO> {
    public UserRoleList() { }
}

(請注意,“ Serializble”標記必須位於所有需要序列化的類上(因此父類也是如此。

然后使用BinarySerialization做到這一點。

暫無
暫無

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

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