示例#1
0
 /// <summary>
 /// Converts the function to bytes.
 /// </summary>
 /// <param name="method">The method.</param>
 /// <returns></returns>
 public byte[] ConvertFunctionToBytes(Expression <Func <IReceivedMessage <MessageExpression>, IWorkerNotification, object> > method)
 {
     using (_functionToBytesTimer.NewContext())
     {
         var result = _handler.ConvertFunctionToBytes(method);
         _resultFunctionSizeHistogram.Update(result.Length, result.Length.ToString(CultureInfo.InvariantCulture));
         return(result);
     }
 }
        /// <summary>
        /// Sends the specified linqExpression for execution.
        /// </summary>
        /// <param name="method">The linqExpression.</param>
        /// <param name="timeOut">The time out.</param>
        /// <param name="data">The data.</param>
        /// <returns></returns>
        /// <remarks>
        /// Your expression must return a type of object, or the JSON serializer may throw casting errors
        /// </remarks>
        public IReceivedMessage <object> Send(Expression <Func <IReceivedMessage <MessageExpression>, IWorkerNotification, object> > method, TimeSpan timeOut, IAdditionalMessageData data = null)
        {
            var message = new MessageExpression(MessageExpressionPayloads.Function, _serializer.ConvertFunctionToBytes(method));

            return(_queue.Send(message, timeOut, data));
        }