[英]Serialize and Deserialize (C#)
如何将一个类反序列化为另一个类,如下所示:
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);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.