你应该使用custom JsonConverter。
解决办法是像
public class MyObjectProxy
{
public string s { get; set; }
public int i { get; set; }
}
public class MyObjectJsonConverter : JsonConverter
{
public override void WriteJson(
JsonWriter writer, object value, JsonSerializer serializer)
{
// Create an instance of MyObjectProxy, copy values from the
// instance of MyObject, write JSON from the MyObjectProxy.
}
public override object ReadJson(
JsonReader reader, Type type, object value, JsonSerializer serializer)
{
// Deserialize MyObjectProxy, create an instance of MyObject,
// copy properties from the deserialized MyObjectProxy.
}
public override bool CanConvert(Type type)
{
return typeof(MyObject).IsAssignableFrom(type);
}
}
什么是你当它失败的错误消息?我想问的原因是,如果DeserializeObject与构造函数有关,就不应该抛出异常,因为这是当它需要再次构造对象的时候。 –
“MyObject”类是否密封?你能继承吗? –
@MarioStoilov它不密封。 –