如何将一个类反序列化为另一个类:
var ser = SerializedObject(b);// read from Database!
var des = DeSerializeAnObject(ser, typeof(BaseClass));
BaseClass baseclass = (BaseClass)des;
baseclass.Hello();
答案 0 :(得分:1)
你确定它真的是你经过的序列化/反序列化吗?听起来像你正在寻找的代码是将一个对象映射(即复制选定的或所有属性)到另一个对象的代码。
查看AutoMapper Getting Started Guide。
跟随你的例子你可以做这样的事情
BaseClass baseClass = Mapper.Map<OtherClass, BaseClass>(b);
我也对你在例子中选择的类名感到困惑。如果“BaseClass”确实是OtherClass的基类,那么你只需要进行一次转换,但我猜不会是这种情况。
答案 1 :(得分:-1)
反序列化样本就像......
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);
}
}