public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { GameMaterial gmt = (GameMaterial)value; string hash = HashUtils.MD5Hash(gmt.ToJSON()); GameMaterialReference reference = new GameMaterialReference() { Hash = hash }; var jt = JToken.FromObject(reference); jt.WriteTo(writer); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.TokenType == JsonToken.Null) { return(null); } JObject obj = JObject.Load(reader); GameMaterialReference reference = obj.ToObject <GameMaterialReference>(); if (reference == null || reference.Hash == null) { return(null); } return(GameMaterial.FromHash(reference.Hash)); }