internal void SerializeRequestArgs(object[] arguments, CdrOutputStream targetStream, LogicalCallContext context, Serializer contextElementSer) { for (int actualParamNr = 0; actualParamNr < arguments.Length; actualParamNr++) { ArgumentMapping paramInfo = m_arguments[actualParamNr]; // iterate through the parameters, nonOut and nonRetval params are serialised for a request if (paramInfo.IsInArg() || paramInfo.IsRefArg()) { paramInfo.Serialize(targetStream, arguments[actualParamNr]); } // move to next parameter // out-args are also part of the arguments array -> move to next for those whithout doing something } SerializeContextElements(targetStream, context, contextElementSer); }
internal void SerializeResponseArgs(object result, object[] outArgs, CdrOutputStream targetStream) { // first serialise the return value, if (m_returnValue.IsNonVoidReturn()) { m_returnValue.Serialize(targetStream, result); } // ... then the out/ref args int outParamNr = 0; for (int actualParamNr = 0; actualParamNr < m_arguments.Length; actualParamNr++) { ArgumentMapping paramInfo = m_arguments[actualParamNr]; // iterate through the parameters, out/ref parameters are serialised if (paramInfo.IsOutArg() || paramInfo.IsRefArg()) { paramInfo.Serialize(targetStream, outArgs[outParamNr]); outParamNr++; } } }