public static bool TryWriteMetaReference(this JsonHelperWriter json, object obj, bool register = false) { int id = json.GetReferenceID(obj); if (id != META.REF_NONE) { json.WriteStartMetadata(META.REF); json.WriteProperty(META.REF_ID, id); json.WriteProperty(META.REF_TYPE, json.GetReferenceType(id, obj)); json.WriteEndMetadata(); return(true); } if (register) { json.RegisterReference(obj); } return(false); }