diff options
author | Atsushi Eno <atsushi@ximian.com> | 2011-06-28 15:43:13 +0400 |
---|---|---|
committer | Atsushi Eno <atsushi@ximian.com> | 2011-06-28 15:43:13 +0400 |
commit | 226c2db9ac46621ed9c7d278b64c29a8259ae4e7 (patch) | |
tree | 049202de408fbc259cb0a18de3cccd9be9ffa760 /mcs/class/System.ServiceModel.Web/System.ServiceModel.Dispatcher/WebMessageFormatter.cs | |
parent | b737e5542fe6ff736e09b75f3be333a6460f4a71 (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.cs | 10 |
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); } |