WCF Parámetros de reposo que involucran tipos complejos.

Configuración de un servicio WCF que utiliza el enlace webHttpBinding ... Puedo devolver tipos complejos del método como XML ok. ¿Cómo tomo un tipo complejo como un parámetro?

[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);
}

Dado que UriTemplate solo permite cadenas, ¿cuál es la mejor práctica? La idea es que la aplicación cliente publique una solicitud al servicio como criterios de búsqueda para una persona. El servicio responderá con el objeto apropiado que contiene los datos como XML.

Respuestas a la pregunta(3)

Su respuesta a la pregunta