private static HttpRequestMessage CreateRequestMessage(Message message, HttpRequestMessageProperty requestMessageProperty) { Fx.Assert(message != null, "The 'message' parameter should not be null."); Fx.Assert(requestMessageProperty != null, "The 'requestMessageProperty' parameter should not be null."); HttpRequestMessage request = new HttpRequestMessage(); request.RequestUri = message.Properties.Via; Fx.Assert(requestMessageProperty.Method != null, "The HttpRequestMessageProperty class ensures the 'Method' property will never be null."); request.Method = new HttpMethod(requestMessageProperty.Method); request.Content = CreateMessageContent(message, requestMessageProperty.SuppressEntityBody); WebHeaderCollection headers = requestMessageProperty.Headers; foreach (string headerKey in headers.AllKeys) { request.AddHeader(headerKey, headers[headerKey]); } request.CopyPropertiesFromMessage(message); return request; }