“可序列化”属性的不可继承,有其他办法解决吗?
2005-03-29 15:04
573 查看
可序列化属性是何继承?
在我转载的文章:.NET 中的对象序列化[转] 我用红色标识了一段:
需要注意的是,无法继承 Serializable 属性。如果从 MyObject 派生出一个新的类,则这个新的类也必须使用该属性进行标记,否则将无法序列化。例如,如果试图序列化以下类实例,将会显示一个 SerializationException,说明 MyStuff 类型未标记为可序列化。
可是我目前有个问题:
一个抽象的基类ObjectEntity,在基类中我定义了一个方法,此方法用于进行深度Clone:
public EntityObject DeepClone()
using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
BinaryFormatter formatter=new BinaryFormatter();
formatter.Serialize(stream,this);
stream.Position = 0;
return (EntityObject)formatter.Deserialize(stream);
}
}
目前一个实体类SuppliersEntity:ObjectEntity 继承于ObjectEntity类
如果此SuppliersEntity使用[Serializable]标明,那么SuppliersEntity的对象supplier1.DeepClone()是没有问题的。
但我想,有没有其他的办法,不要给SupplierEntity标明Serializable,直接继承自ObjectEntity后,就具有可序列化的属性呢?
因为给那么多的实体类加[Serializable]也挺麻烦的。
在我转载的文章:.NET 中的对象序列化[转] 我用红色标识了一段:
需要注意的是,无法继承 Serializable 属性。如果从 MyObject 派生出一个新的类,则这个新的类也必须使用该属性进行标记,否则将无法序列化。例如,如果试图序列化以下类实例,将会显示一个 SerializationException,说明 MyStuff 类型未标记为可序列化。
可是我目前有个问题:
一个抽象的基类ObjectEntity,在基类中我定义了一个方法,此方法用于进行深度Clone:
public EntityObject DeepClone()
using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
BinaryFormatter formatter=new BinaryFormatter();
formatter.Serialize(stream,this);
stream.Position = 0;
return (EntityObject)formatter.Deserialize(stream);
}
}
目前一个实体类SuppliersEntity:ObjectEntity 继承于ObjectEntity类
如果此SuppliersEntity使用[Serializable]标明,那么SuppliersEntity的对象supplier1.DeepClone()是没有问题的。
但我想,有没有其他的办法,不要给SupplierEntity标明Serializable,直接继承自ObjectEntity后,就具有可序列化的属性呢?
因为给那么多的实体类加[Serializable]也挺麻烦的。
相关文章推荐
- 属性IsLocked不可用于登录"[sa]解决办法
- windows8.1中组件服务DCOM配置里属性灰色不可修改的解决办法
- 对象序列化后部分属性无故消失的解决办法
- Vue 数组中更新属性值后,视图不更新,等待其他元素更新后会触发的解决办法
- 调用WebAPI接口地址返回序列化的JSON对象中的属性都加了个k__BackingField关键字的解决办法
- IE6下li会继承ul属性的bug、产生条件、解决办法
- 被病毒感染后隐藏文件夹的隐藏属性变灰(不可修改)的解决办法!
- Centos7发布ThinkPHP3.2.3项目,Runtime文件夹不可写解决办法
- Centos7发布ThinkPHP3.2.3项目,Runtime文件夹不可写解决办法
- REDIS并行多线程写入时出现“如果基础流不可搜寻,则当读取缓冲区不为空时,将无法写入到 BufferedStream。”解决办法
- 组件服务-计算机-我的电脑右键无属性的解决办法
- EF 解除属性映射到数据库中 NotMappedAttribute无效解决办法
- jquery和其他库发生冲突的解决办法
- java属性太多,有上百个,页面添加一次 需要手写很多的属性解决办法。
- flash无法覆盖的问题_三种办法可以解决flash覆盖其他元素
- DCOM配置时右键属性不见的解决办法
- 接口返回的 json数据中含有双引号 或其他非法字符的解决办法
- Gridview中生成的属性rules="all",在Firefox出现内线框解决办法