【发布时间】:2010-11-30 14:48:23
【问题描述】:
我正在开发一个 ASP.NET 应用程序,该应用程序具有一个继承自定义对象列表的类。
public class UserRoleList : List<UserRoleBO> {
public UserRoleList() { }
}
如何使这个类在 C# 中可序列化?
【问题讨论】:
标签: c# list serialization
我正在开发一个 ASP.NET 应用程序,该应用程序具有一个继承自定义对象列表的类。
public class UserRoleList : List<UserRoleBO> {
public UserRoleList() { }
}
如何使这个类在 C# 中可序列化?
【问题讨论】:
标签: c# list serialization
我相信您真的只需要确保 UserRoleBO 是可序列化的,并且列表会自行处理。这假定您要序列化的值是 UserRoleBO 和 UserList 上的公共属性。欲了解更多信息,请参阅What is the point of the ISerializable interface?
【讨论】:
您需要执行以下操作
最简单的方法是将 [Serializable] 属性添加到类中。这在大多数情况下都有效。
另一方面,从List<T> 派生通常是个坏主意。该类并不意味着派生自该类,并且在从List<T> 引用中使用派生类的场景中,任何专门化其行为的尝试都可能受到阻碍。你能解释一下为什么要以这种方式推导吗?可能有更强大的解决方案。
【讨论】:
像这样:
[Serializable]
public class UserRoleList : List<UserRoleBO> {
public UserRoleList() { }
}
(请注意,“Serializble”标签需要在所有需要序列化的类上(因此也是父类。
然后使用 BinarySerialization 来做。
【讨论】: