我正在使用一个实现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
,它让我很困惑。
答案 0 :(得分:0)
这是binary serialization到BinaryFormatter
,而不是通过XmlSerializer
更熟悉的序列化。
此处提供了一些信息:Custom serialization。默认情况下,二进制序列化序列化类的字段,ISerializable
允许覆盖它,例如在不同版本之间进行序列化时。