【问题标题】:The constructor to deserialize an object of Type was not found in derived class在派生类中找不到反序列化类型对象的构造函数
【发布时间】:2016-04-06 10:25:01
【问题描述】:

基类不包含无参数构造函数且不可序列化。所以我尝试了这个: Object

在反序列化时,捕获到异常: 未找到反序列化“ProjectHttpClientEx”类型对象的构造函数。 我正在使用二进制序列化/反序列化 Serial/Deserial

如何修复它以进行反序列化?

【问题讨论】:

    标签: c# json serialization deserialization


    【解决方案1】:

    在实现 ISerializable 时,您需要添加一个带 SerializationInfo 和 StreamingContext 的受保护构造函数,并从那里构造成员。

    实现 GetObjectData 以序列化成员 添加受保护的构造函数来反序列化成员并构造对象

    protected ProjectHttpClientEx(SerializationInfo info, StreamingContext context)
    {
      member = info.GetBoolean("somedata"); // or empty
    }
    
    [SecurityPermission(SecurityAction.Demand, SerializationFormatter = true)]
    public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
    {
      info.AddValue("somedata", true);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-30
      • 1970-01-01
      • 2020-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      相关资源
      最近更新 更多