序列化没有无参数构造函数的可序列化类

本文关键字:序列化 构造函数 参数 | 更新日期: 2023-09-27 18:15:57

我正在使用一个实现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);
}

你可能猜到我得到了一个"Emgu.CV"。不能序列化DenseHistogram,因为它没有无参数构造函数。"例外。我知道-为什么-我需要无参数构造函数,但它有点让我困惑,因为类实现ISerializable

序列化没有无参数构造函数的可序列化类

这是通过BinaryFormatter进行二进制序列化,而不是通过XmlSerializer进行更熟悉的序列化。

这里的一些信息:自定义序列化。默认情况下,二进制序列化序列化类的字段ISerializable允许重写此字段,例如在不同版本之间序列化时。