WebApi没有序列化继承自Exception的类

时间:2019-05-26 05:53:52

标签: c# asp.net json.net

我有一个从Exception继承的类,它用[Serializable]装饰,并且还实现了ISerializable

    protected MyException(SerializationInfo info, StreamingContext context)
    {
        if (info != null)
        {
            this.MyProperty = (Dictionary<string, string>)info.GetValue("MyProperty ", typeof(Dictionary<string, string>));
        }
    }

    [SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)]
    public override void GetObjectData(SerializationInfo info, StreamingContext context)
    {
        base.GetObjectData(info, context);

        if (info != null)
        {
            info.AddValue("MyProperty ", this.MyProperty );
        }
    }

一切都按预期进行,该类已在WebApi项目上序列化并在客户端上反序列化。

同时,我已经更新了我所有的Nu​​get软件包(Newtonsoft,WebApi2等),突然之间,在控制器的操作中对类进行序列化不会调用ISerializable构造函数。因此,客户端在反序列化时找不到自定义属性。

使用JsonConvert.SerializeJsonConvert.Deserialize手动对异常进行序列化/反序列化(出于测试目的)时,一切正常。因此,这在Json.Net上不是问题,但在Asp.Net管道中可能有问题。

此问题与WebApi2软件包的最新更新有关吗?我需要更改代码还是缺少某些内容?

0 个答案:

没有答案