繁体   English   中英

序列化和反序列化(C#)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM