public override object GetObject(byte[] inputBytes, int startOffset, out int nextStartOffset) { var objectByteData = ByteUtil.DecodeBytes(inputBytes, startOffset, out nextStartOffset); if (objectByteData.Length > 0) { var typeName = ByteUtil.DecodeString(objectByteData, 0, out int objDataStartOffset); var type = SerializerUtil.GetType(typeName); var result = SerializerUtil.CreateInstance(type); int objDataFieldStartOffset = objDataStartOffset; SetObjectField(type.GetRpcFieldList(), result, objectByteData, objDataFieldStartOffset, objectByteData.Length, out objDataStartOffset); return(result); } else { return(null); } }