序列化一个ISerializable类,不带无参数构造函数

时间:2014-07-31 09:06:12

标签: c# serialization emgucv

我正在使用一个实现ISerializable但没有无参数构造函数的类。该课程来自 EmguCV 库:

[Serializable]
public class DenseHistogram : UnmanagedObject, ISerializable, IEquatable<DenseHistogram>
{
    public DenseHistogram(int binSize, RangeF range);
    public DenseHistogram(int[] binSizes, RangeF[] ranges);
    public DenseHistogram(SerializationInfo info, StreamingContext context);
}

你可能会猜到我得到一个&#34; Emgu.CV.DenseHistogram无法序列化,因为它没有无参数构造函数。&#34;例外。我知道 - 以及为什么 - 我需要无参数构造函数,但由于类实现了ISerializable,它让我很困惑。

1 个答案:

答案 0 :(得分:0)

这是binary serializationBinaryFormatter,而不是通过XmlSerializer更熟悉的序列化。

此处提供了一些信息:Custom serialization。默认情况下,二进制序列化序列化类的字段ISerializable允许覆盖它,例如在不同版本之间进行序列化时。