Tengo algunas dificultades con los servicios WCF RIA similares al problema especificado en this thread.Ria Services Pasando objeto complejo como parámetro a un método de servicio de dominio de consulta
El método domainservice que estoy creando (un método de consulta) debería tomar un parámetro de objeto complejo. ejemplo método DomainService:
public ComplexObjectResult GetComplexObject(ComplexObjectParameter test)
{
//do stuff
}
el objeto de parámetro:
public class ComplexObjectParameter
{
[Key]
public decimal ID { get; set; }
... other fields
}
consigo este error de compilación: Error 70 Parámetro 'test' de entrada de operación de dominio 'GetComplexObject' debe ser uno de los serializable predefinido tipos.
Después de buscar en la web encontré this msdn thread. Indica que esto es una limitación de los servicios de RIA y el hilo no especifica soluciones provisionales decentes.
Ahora parece que hay algunas soluciones sucias:
Cambiar el parámetro complejo de tipo cadena y Serialize/deserializar el parameterobject mismos que encuentro una solución poco limpia.
Utilice la etiqueta [Invoke] en el método de servicio de dominio y pierda toda la funcionalidad de rastreo de RIA, para la cual estoy usando RIA en primer lugar.
¿Hay alternativas para las soluciones mencionadas que tienen menos desventajas? ¿Alguien ha encontrado una solución más elegante para este problema?
Gracias
Fui con su segunda opción Stephane. Los tipos complejos que devolví fueron de solo lectura en el cliente, por lo que la pérdida de la funcionalidad de seguimiento no fue un problema para mí. Considere poner posibles soluciones (incluso las sucias) en respuestas la próxima vez ... ¡Hubiera votado tanto la pregunta como la respuesta entonces! –