예제 #1
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     if (value is CGraph graph)
     {
         CScriptSerializer.PrepareNodesForSerialization(graph.m_nodes);
     }
     else if (value is IList <CNode> nodeList)
     {
         CScriptSerializer.PrepareNodesForSerialization(nodeList);
     }
     CScriptSerializer.Instance.SerializeToWriter(value, writer);
 }
예제 #2
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            object outObject = CScriptSerializer.Instance.DeserializeFromReader(reader, objectType);

            if (outObject is CGraph graph)
            {
                CScriptSerializer.ResolveNodeReferences(graph.m_nodes);
            }
            else if (outObject is IList <CNode> nodeList)
            {
                CScriptSerializer.ResolveNodeReferences(nodeList);
            }

            return(outObject);
        }