json.net 所有属性都写入 JsonExtensionData 而不是实际的对象属性

json.net All properties written to JsonExtensionData instead of to actual object properties

我有一个带有 JsonExtensionData 的基础 class,让我们假设

class AType {
    public AType()  { _additionalData = new Dictionary<string, JToken>(); }

    [JsonExtensionData]
    public IDictionary<string, JToken> _additionalData;
}

和一个 class B 扩展了 A 的其他属性

class BType : AType {
    public int N { get; set; }
    public int Name { get; set; }
}

当将 B 对象数组反序列化为 List<BType> 时,所有值都将进入 _additionalData而不是正确的属性,即 NName。同样的问题发生在 JObject.ToObject(Type)JsonConvert.DeserializeObject(string, Type)

找到问题了...这不是我的问题。抱歉,您可以关闭该问题。 在我的应用程序中,我有很多 classes,首先我尝试使用默认的 .net json 转换器,但是当我忘记删除 class 的 2 个上的 DataContractAttribute已改为使用 json.net 库和 thouse,其中 classes 在 BType

中出现问题