C#序列化对象集合

我正在开发一个ASP.NET应用程序,它具有一个inheritance自定义对象列表的类。

public class UserRoleList : List { public UserRoleList() { } } 

如何在C#中使这个类可序列化?

我相信你真的需要确保UserRoleBO是可序列化的,列表将自行处理。 这假定您要序列化的值是UserRoleBO和UserList上的公共属性。 有关更多信息,请参阅ISerializable接口的重点是什么?

您需要执行以下操作

  1. 确保UserRoleList是可序列化的
  2. 确保UserRoleBO可序列化
  3. 确保UserRoleBO中所有字段的类型都是可序列化的(这是递归的)

最简单的方法是将[Serializable]属性添加到类中。 这在大多数情况下都有效。

另一方面,从List派生通常是一个坏主意。 该类不是从派生出来的,并且在从List引用中使用派生类的sceanarios中可以阻止任何专门化它的行为的尝试。 你能解释一下为什么要以这种方式推导出来吗? 可能有更强大的解决方案。

像这样:

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

(注意’Serializble’标签需要在所有需要序列化的类上(所以父类也是如此)。

然后使用BinarySerialization来完成它。