当前位置:  开发笔记 > 编程语言 > 正文

在反序列化期间找不到构造函数?

如何解决《在反序列化期间找不到构造函数?》经验,为你挑选了1个好方法。

给出以下示例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;

namespace SerializationTest
{
    [Serializable]
    class Foo : Dictionary
    {
    }

    class Program
    {
        static void Main(string[] args)
        {
            Foo foo = new Foo();
            foo[1] = "Left";
            foo[2] = "Right";

            BinaryFormatter formatter = new BinaryFormatter();
            MemoryStream stream = new MemoryStream();

            formatter.Serialize(stream, foo);
            stream.Seek(0, SeekOrigin.Begin);
            formatter.Deserialize(stream);
        }
    }
}

在最后一行中,抛出了SerializationException,因为格式化程序找不到Foo的构造函数.这是为什么?



1> Michael Pien..:

在类Foo中附加以下代码行

public Foo() {

}

public Foo(SerializationInfo info, StreamingContext context) : base(info, context) {

}

该类需要一个带有相关序列化参数的构造函数.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有