我正在尝试编写一个自定义合约解析器,该解析器在Newtonsoft.Json.Serialization中扩展DefaultContractResolver,目的是将ExpandoObject中的所有属性转换为具有PascalCase属性名称。扩展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"
}
}
我曾尝试重写ResolvePropertyName ,并且DefaultContractResolver中的CreateProperty方法没有运气。所有这些都跳过expando对象中的子属性。有谁知道我需要重写DefaultContractResolver中的什么方法来将Expando中的子属性名称转换为PascalCase?