C#序列化对象集合
我正在开发一个ASP.NET应用程序,它具有一个inheritance自定义对象列表的类。
public class UserRoleList : List { public UserRoleList() { } }
如何在C#中使这个类可序列化?
我相信你真的需要确保UserRoleBO是可序列化的,列表将自行处理。 这假定您要序列化的值是UserRoleBO和UserList上的公共属性。 有关更多信息,请参阅ISerializable接口的重点是什么?
您需要执行以下操作
- 确保UserRoleList是可序列化的
- 确保UserRoleBO可序列化
- 确保UserRoleBO中所有字段的类型都是可序列化的(这是递归的)
最简单的方法是将[Serializable]属性添加到类中。 这在大多数情况下都有效。
另一方面,从List
派生通常是一个坏主意。 该类不是从派生出来的,并且在从List
引用中使用派生类的sceanarios中可以阻止任何专门化它的行为的尝试。 你能解释一下为什么要以这种方式推导出来吗? 可能有更强大的解决方案。
像这样:
[Serializable] public class UserRoleList : List { public UserRoleList() { } }
(注意’Serializble’标签需要在所有需要序列化的类上(所以父类也是如此)。
然后使用BinarySerialization来完成它。