title: WCF Rest parameters involving complex types
body: <p>Setting up a WCF service that uses the webHttpBinding... I can return complex types from the method as XML ok.  How do I take in a complex type as a parameter?</p>
  
  <pre><code>[ServiceContract(Name = "TestService", Namespace = "http://www.test.com/2009/11")]
  public interface ITestService
  {
      [OperationContract]
      [WebInvoke(Method = "POST", 
                 BodyStyle = WebMessageBodyStyle.Bare, 
                 UriTemplate = "/Person/{customerAccountNumber}, {userName}, {password}, {PersonCriteria}")]
      Person SubmitPersonCriteria(string customerAccountNumber, 
                                  string userName, 
                                  string password, 
                                  PersonCriteria details);
  }
  </code></pre>
  
  <p>Since the UriTemplate only allows strings, what's the best practice?  The idea is the client app will post a request to the service like search criteria for a person.  The service will respond with the appropriate object containing the data as XML.</p>