public override JValue Swap(Context c, JValue jv, bool requireNew) { var id = getId(jv); Message msg = messages[id]; if (id == -1) { return(null); } if (msg != null) { DObject.FromJson(msg, c, jv); return(msg); } return(new Message(c, jv)); //return base.Swap(c, jv, requireNew); }