重写json.net中属性lvl处的ContractResolver
是否有任何方法可以重写元数据属性,使其不使用控制台写入行中指定的CamelCasePropertyNamesContractResolver重写json.net中属性lvl处的ContractResolver,json,json.net,Json,Json.net,是否有任何方法可以重写元数据属性,使其不使用控制台写入行中指定的CamelCasePropertyNamesContractResolver 我不希望它更改我的元数据属性中的名称,但无法更改serialize对象中使用的序列化设置。当然,我可以在这个演示中看到,但这只是为了说明我的问题。下面的代码可以做到这一点,但是需要很多额外的代码来完成。如果没有其他人能想出更好的解决方案,这是可行的 { "metaData": { "exiF_TestSomthing": "Hello" }
我不希望它更改我的元数据属性中的名称,但无法更改serialize对象中使用的序列化设置。当然,我可以在这个演示中看到,但这只是为了说明我的问题。下面的代码可以做到这一点,但是需要很多额外的代码来完成。如果没有其他人能想出更好的解决方案,这是可行的
{
"metaData": {
"exiF_TestSomthing": "Hello"
}
}
您不想更改元数据或字典的键吗?或者两者都有?我不想EXIF变成EXIF
{
"metaData": {
"exiF_TestSomthing": "Hello"
}
}
public class IgnoreSettingsConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return true;
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
throw new NotImplementedException();
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
var settings = new JsonSerializerSettings();
var s = JsonSerializer.Create(settings);
s.Serialize(writer, value);
}
}
public class GDALInfoResult
{
public GDALInfoResult()
{
MetaData = new Dictionary<string, string>();
}
[JsonConverter(typeof(IgnoreSettingsConverter))]
public Dictionary<string, string> MetaData { get; set; }
}