序列化和反序列化(c#)
本文关键字:反序列化 序列化 | 更新日期: 2023-09-27 18:18:06
如何像这样将一个类反序列化到另一个类:
var ser = SerializedObject(b);// read from Database!
var des = DeSerializeAnObject(ser, typeof(BaseClass));
BaseClass baseclass = (BaseClass)des;
baseclass.Hello();
你确定你要的真的是序列化/反序列化吗?对我来说,听起来像你正在寻找的是代码映射(即复制选定或所有属性)一个对象到另一个。
看一下AutoMapper入门指南
按照你的例子,你可以这样做
BaseClass baseClass = Mapper.Map<OtherClass, BaseClass>(b);
我对你在例子中选择的类名也有些困惑。如果"BaseClass"确实是OtherClass的基类那么你只需要进行强制类型转换但我猜不是这样的
一个反序列化的样本就像…
public BaseClass DeSerializeAnObject(BaseClass bc)
{
if (bc == null) return bc;
IFormatter formatter = new BinaryFormatter();
using (Stream stream = new MemoryStream())
{
formatter.Serialize(stream, bc);
stream.Seek(0, SeekOrigin.Begin);
return (BaseClass)formatter.Deserialize(stream);
}
}