WCF - consumir XMI sobre REST
Frecuentes
Visto 364 veces
0
Estoy tratando de consumir un servicio de descanso que devuelve datos XMI como este:
<xmi:XMI xmlns:xmi="http://www.omg.org/XMI" xmi:version="2.0">
...
</...>
Quiero consumir esto en un contrato de servicio como este:
[ServiceContract]
[XmlSerializerFormat]
interface IMyService
{
[OperationContract]
[WebGet(
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Xml,
UriTemplate = "myMethod")]
MyData MyMethod();
...
}
Mi contrato de datos se ve así (vacío para probar):
[DataContract]
[XmlRoot]
public class MyData
{
}
Obtengo la siguiente excepción:
No se puede deserializar el cuerpo XML con el nombre raíz 'XMI' y el espacio de nombres raíz 'http://www.omg.org/XMI' (para la operación 'MyMethod' y el contrato ('IMyService', 'http://tempuri.org/') )) usando XmlSerializer. Asegúrese de que el tipo correspondiente al XML se agregue a la colección de tipos conocidos del servicio.
¿Alguien tiene alguna idea? (Puedo consumir otros servicios REST sin espacios de nombres)
1 Respuestas
0
Ok, encontré la respuesta yo mismo: debe especificar el espacio de nombres y el nombre del elemento raíz:
[XmlRoot(Namespace = "http://www.omg.org/XMI", ElementName = "XMI")]
public class MyData
{
}
respondido 10 mar '12, 11:03
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas xml wcf rest or haz tu propia pregunta.