Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAtsushi Eno <atsushi@ximian.com>2011-06-28 15:43:13 +0400
committerAtsushi Eno <atsushi@ximian.com>2011-06-28 15:43:13 +0400
commit226c2db9ac46621ed9c7d278b64c29a8259ae4e7 (patch)
tree049202de408fbc259cb0a18de3cccd9be9ffa760 /mcs/class/System.ServiceModel.Web/System.ServiceModel.Dispatcher/WebMessageFormatter.cs
parentb737e5542fe6ff736e09b75f3be333a6460f4a71 (diff)
Implement support for Stream param with WebHttpBinding raw content format.
Diffstat (limited to 'mcs/class/System.ServiceModel.Web/System.ServiceModel.Dispatcher/WebMessageFormatter.cs')
-rw-r--r--mcs/class/System.ServiceModel.Web/System.ServiceModel.Dispatcher/WebMessageFormatter.cs10
1 files changed, 4 insertions, 6 deletions
diff --git a/mcs/class/System.ServiceModel.Web/System.ServiceModel.Dispatcher/WebMessageFormatter.cs b/mcs/class/System.ServiceModel.Web/System.ServiceModel.Dispatcher/WebMessageFormatter.cs
index 9e0c915dba2..10a98ce9806 100644
--- a/mcs/class/System.ServiceModel.Web/System.ServiceModel.Dispatcher/WebMessageFormatter.cs
+++ b/mcs/class/System.ServiceModel.Web/System.ServiceModel.Dispatcher/WebMessageFormatter.cs
@@ -544,11 +544,6 @@ namespace System.ServiceModel.Dispatcher
var wp = message.Properties [WebBodyFormatMessageProperty.Name] as WebBodyFormatMessageProperty;
var fmt = wp != null ? wp.Format : WebContentFormat.Xml;
- if (fmt == WebContentFormat.Raw) {
- var rmsg = (RawMessage) message;
- parameters [0] = rmsg.Stream;
- return;
- }
Uri to = message.Headers.To;
UriTemplateMatch match = UriTemplate.Match (Endpoint.Address.Uri, to);
@@ -566,7 +561,10 @@ namespace System.ServiceModel.Dispatcher
var str = match.BoundVariables [name];
if (str != null)
parameters [i] = Converter.ConvertStringToValue (str, p.Type);
- else {
+ else if (fmt == WebContentFormat.Raw && p.Type == typeof (Stream)) {
+ var rmsg = (RawMessage) message;
+ parameters [i] = rmsg.Stream;
+ } else {
var serializer = GetSerializer (fmt, IsRequestBodyWrapped, p);
parameters [i] = DeserializeObject (serializer, message, md, IsRequestBodyWrapped, fmt);
}