public object DeserializeReply (Message message, object [] parameters)
{
MessageDescription md = null;
foreach (MessageDescription mdi in messages)
if (!mdi.IsRequest)
md = mdi;
object [] parts = MessageToParts (md, message);
if (md.MessageType != null) {
#if NET_2_1
object msgObject = Activator.CreateInstance (md.MessageType);
#else
object msgObject = Activator.CreateInstance (md.MessageType, true);
#endif
PartsToMessageObject (md, parts, msgObject);
return msgObject;
}
else {
int index = ParamsOffset (md.Body);
foreach (ParameterInfo pi in requestMethodParams)
if (pi.IsOut || pi.ParameterType.IsByRef)
parameters [pi.Position] = parts [index++];
return HasReturnValue (md.Body) ? parts [0] : null;
}
}