/// <summary> /// Finds all the sub-messages in advance so we know their indices and can deserialize out of order if needed /// </summary> private void WalkMessage(FudgeMsg msg) { MsgAndObj msgAndObj = new MsgAndObj(); msgAndObj.Msg = msg; int index = objectList.Count; objectList.Add(msgAndObj); msgToIndexMap[msg] = index; var fastFields = msg.GetFastFields(); for (int i = 0; i < fastFields.Count; i++) { var field = fastFields[i]; if (field.Type == FudgeMsgFieldType.Instance) { WalkMessage((FudgeMsg)field.Value); } } }