Author: atsushi
Date: 2008-02-15 13:34:42 -0500 (Fri, 15 Feb 2008)
New Revision: 95785

Modified:
   
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Dispatcher/ChangeLog
   
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Dispatcher/WebMessageFormatter.cs
Log:
2008-02-15  Atsushi Enomoto  <[EMAIL PROTECTED]>

        * WebMessageFormatter.cs : implement DeserializeRequest().



Modified: 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Dispatcher/ChangeLog
===================================================================
--- 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Dispatcher/ChangeLog
  2008-02-15 18:34:05 UTC (rev 95784)
+++ 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Dispatcher/ChangeLog
  2008-02-15 18:34:42 UTC (rev 95785)
@@ -1,5 +1,9 @@
 2008-02-15  Atsushi Enomoto  <[EMAIL PROTECTED]>
 
+       * WebMessageFormatter.cs : implement DeserializeRequest().
+
+2008-02-15  Atsushi Enomoto  <[EMAIL PROTECTED]>
+
        * WebMessageFormatter.cs : attach a HttpRequestMessageProperty when
          creating a request Message.
 

Modified: 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Dispatcher/WebMessageFormatter.cs
===================================================================
--- 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Dispatcher/WebMessageFormatter.cs
     2008-02-15 18:34:05 UTC (rev 95784)
+++ 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Dispatcher/WebMessageFormatter.cs
     2008-02-15 18:34:42 UTC (rev 95785)
@@ -229,7 +229,16 @@
                                        throw new ArgumentNullException 
("parameters");
                                CheckMessageVersion (message.Version);
 
-                               throw new NotImplementedException ();
+                               Uri to = message.Headers.To;
+                               UriTemplateMatch match = UriTemplate.Match 
(Endpoint.Address.Uri, to);
+                               if (match == null)
+                                       // not sure if it could happen
+                                       throw new SystemException 
(String.Format ("INTERNAL ERROR: UriTemplate does not match with the request: 
{0} / {1}", UriTemplate, to));
+                               for (int i = 0; i < parameters.Length; i++) {
+                                       var p = MessageDescription.Body.Parts 
[i];
+                                       string name = p.Name.ToUpperInvariant 
();
+                                       parameters [i] = match.BoundVariables 
[name];
+                               }
                        }
                }
        }

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to