尽管TypeNameHandling设置为Auto,但JSON反序列化会忽略$ type

时间:2015-08-31 19:17:49

标签: c# json json.net asp.net-web-api2

我想序列化派生类并将其发送到web-api方法。 在我的WebApiConfig.cs中,我已经设置了

config.Formatters.JsonFormatter.SerializerSettings.TypeNameHandling = TypeNameHandling.Auto;

我在我的JSON(或将被序列化为JSON的JavaScript)中设置了$ type参数,但派生类仍然没有正确反序列化(总是为null)。

1 个答案:

答案 0 :(得分:2)

这可能是因为您没有将$ type参数设置为第一个属性。 例如,这将起作用:

var param = {
    $type: 'MyNamespace.MyType, MyAssemblyName', // .NET fully qualified name
    name: 'test' // object properties
};

但这不起作用:

var param = {
    name: 'test' // object properties
    $type: 'MyNamespace.MyType, MyAssemblyName', // .NET fully qualified name
};