序列化没有无参数构造函数的可序列化类
本文关键字:序列化 构造函数 参数 | 更新日期: 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
允许重写此字段,例如在不同版本之间序列化时。