OnDeserialized for JSON导致对象为空



我的WebAPI项目上有一个路由,它接受一个对象作为输入ExportPostDataExportPostData有一个类型为Contract的名为"契约"的属性,当我调用路由时,该属性已成功填充。我将[OnDeserialized]标记添加到Contract类中,现在它总是无法反序列化。没有抛出错误,只是Contract为空。我不知道如何调试这个,因为我的OnDeserialized方法从来没有被击中。

ExportPostData

public class ExportPostData
{
    public Contract contract { get; set; }
    public bool includeSubItems { get; set; }
    public string user { get; set; }
    public string[] projects { get; set; }
}
合同

public class ZEstimateContract
{
    public string _id { get; set; }
    public string contractName { get; set; }
    public string contractNumber { get; set; }
    public string updatedBy { get; set; }
    public DateTime updated_at { get; set; }
    [OnDeserialized()]
    internal void Deserialized()
    {
        // THIS NEVER GETS HIT 
        Console.WriteLine("I'm deserialized");
    }
}

变化

[OnDeserialized()]
internal void Deserialized()
{
    // THIS NEVER GETS HIT 
    Console.WriteLine("I'm deserialized");
}

:

    [OnDeserialized]
    internal void Deserialized(StreamingContext context)
    {
        // THIS GETS HIT NOW
        Console.WriteLine("I'm deserialized");
    }

如果没有该参数,方法的签名与ondeserialize要查找的签名不匹配。详细信息请参阅本文:http://msdn.microsoft.com/en-us/library/system.runtime.serialization.ondeserializedattribute.aspx

相关内容

  • 没有找到相关文章