0
我想弄清楚如何使用自定義JsonConverter作爲屬性。問題是我無法弄清楚如何在轉換器中獲取FOO對象。自定義JsonConverter屬性
例
[Newtonsoft.Json.JsonConverter(typeof(FOOConverter))]
public interface IFOO
{
...
}
public class FOOConverter : Newtonsoft.Json.JsonConverter
{
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
var jobj = serializer.Deserialize<JObject>(reader);
...
var foo = jobj.ToObject<IFOO>() // Calls the converter again?
}
}
的.ToObject()將再次運行轉換器,並導致堆棧溢出,這是有道理的,因爲它看起來的屬性,但我怎麼能得到IFoo的對象呢?編輯:WriteJson將是simular,但與JObject.FromObject(值);
使用需要靈活,例如:某些屬性可能在序列化過程中被加密/加密,其他時候,可能存在需要緩存的屬性值。想想幾個用例。
感謝您的想法,與Activator.CreateInstance的問題是,WriteJson我也內需要使用JObject.FromObject來轉換的IFoo對象。 FromObject與ToObject相同 – user1714341