Esempio n. 1
0
 internal object[] DeserialiseRequestArgs(CdrInputStream sourceStream,
                                          out IDictionary contextElements,
                                          Serializer contextElementSer)
 {
     object[] result = new object[m_arguments.Length];
     for (int actualParamNr = 0; actualParamNr < m_arguments.Length; actualParamNr++)
     {
         ArgumentMapping paramInfo = m_arguments[actualParamNr];
         if (paramInfo.IsInArg() || paramInfo.IsRefArg())
         {
             result[actualParamNr] = paramInfo.Deserialize(sourceStream);
         } // else: null for an out parameter
     }
     contextElements = DeserializeContextElements(sourceStream, contextElementSer);
     return(result);
 }
Esempio n. 2
0
 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);
 }