我有一个实体类的完整列表,我需要使Serializable(由于在SQL中存储会话状态,但这是另一回事)。如果基类被标记为可序列化,所有子类都被标记了吗?
我已经添加了属性[Serializable],似乎都很好。
我所有的实体类都从相同的基类扩展而来。 如果我将基类标记为Serializable,这是否意味着所有的孩子都被标记为可序列化?
谢谢
我有一个实体类的完整列表,我需要使Serializable(由于在SQL中存储会话状态,但这是另一回事)。如果基类被标记为可序列化,所有子类都被标记了吗?
我已经添加了属性[Serializable],似乎都很好。
我所有的实体类都从相同的基类扩展而来。 如果我将基类标记为Serializable,这是否意味着所有的孩子都被标记为可序列化?
谢谢
不,属性不被继承。
当您扩展类时,可能会添加可能无法序列化的功能,因此.NET框架无法为您假设所有扩展可串行化基类的东西都是可序列化的。
这就是为什么你必须明确说明每个类别的[Serializable]
属性。
不可以,每个人都必须特别标记为[Serializable]。
此外,如果您打算将对象序列化为派生类型的XML,就好像它是基类型一样,您还需要一个[XmlInclude]属性。
EG:
[Serializable]
public class BaseClass : ParentClass
{
}
[Serializable]
[XmlInclude(typeof(BaseClass))]
public class ParentClass
{
}
(二进制序列,像什么是用于会话,不需要这个)
谢谢,这是有道理的,并为迅速的反应:) – Russell 2009-12-02 05:48:37