示例#1
0
        public byte[] Process(byte[] data)
        {
            object result;

            try {
                var requestName = _requestParser.GetRequestName(data);
                var command     = _commandLocator.GetCommand(requestName);
                if (command == null)
                {
                    throw new ProcessException(string.Format("The request '{0}' is unknown.", requestName));
                }
                result = ExecuteCommand(command, data);
            }
            catch (TargetInvocationException ex) {
                result = new ErrorResponse {
                    Error = ex.InnerException.Message
                };
            }
            catch (Exception ex) {
                result = new ErrorResponse {
                    Error = ex.Message
                };
            }
            return(_requestParser.ConvertToBytes(result));
        }
 public void SendRequest <TRequest>(TRequest request)
 {
     try {
         var data = _requestParser.ConvertToBytes(request);
         _connection.Send(data);
     }
     catch (ConnectionException ex) {
         throw new RequestException("Unable to send the request.", ex);
     }
 }