public void SerializeWithHead(MemoryStream stream) { long begin = stream.Position; ProtocolHead head = ProtocolHead.ShareHead; head.Reset(); head.msgId = GetMessageID(); head.Serialize(stream); Serialize(stream); long position = stream.Position; int length = (int)(position - begin - 4); stream.Position = begin; stream.Write(head.GetBytes(length), 0, 4); stream.Position = position; }