【发布时间】:2017-05-03 08:27:55
【问题描述】:
我正在尝试编写一个自定义合同解析器,它在 Newtonsoft.Json.Serialization 中扩展 DefaultContractResolver,目的是将 ExpandoObject 中的所有属性都转换为具有 PascalCase 属性名称。
我的合同:
public class Fruit
{
public int Id { get; set; }
public ExpandoObject FruitProperties { get; set; }
}
我正在传递以下数据:
{
"Id": "1234",
"FruitProperties" : {
"colour": "red",
"Taste": "sweet
}
}
}
我期待的结果如下:
{
"Id": "1234",
"FruitProperties" : {
"Colour": "red",
"Taste": "sweet"
}
}
我尝试在 DefaultContractResolver 中覆盖 ResolvePropertyName 和 CreateProperty 方法,但没有成功。所有这些都跳过了 expando 对象中的子属性。有谁知道我需要重写 DefaultContractResolver 中的什么方法才能将 Expando 中的子属性名称转换为 PascalCase?
【问题讨论】:
标签: c# asp.net-mvc serialization json.net expandoobject