public object ReadResult(Type returnType) { object result; byte[] data = ByteArrayMarshaler.Demarshal(InputStream); using (MemoryStream stream = new MemoryStream(data)) { ITypeMarshaler marshaler = MarshalingManager.GetMarshaler(returnType); result = marshaler.DemarshalObject(stream); } return(result); }
public object[] ReadArguments(Type[] signature) { object[] arguments = new object[signature.Length]; byte[] data = ByteArrayMarshaler.Demarshal(InputStream); using (MemoryStream stream = new MemoryStream(data)) { for (int i = 0; i < arguments.Length; i++) { Type type = signature[i]; ITypeMarshaler marshaler = MarshalingManager.GetMarshaler(type); arguments[i] = marshaler.DemarshalObject(stream); } } return(arguments); }