Estoy configurando un nuevo servicio .NET 4.0 WCF con un método (operación) que toma tipos de datos generados con XSD fuertemente tipados como parámetros. Esto hace las cosas limpias y ordenadas para el cliente: el cliente puede trabajar con tipos fuertes y no tener que pensar en XML.Obtener XML sin formato de params en una implementación del servicio WCF
Sin embargo, en la implementación del servicio WCF, preferiría tratar los datos de parámetros como documentos XML (LINQ XDocument) en lugar de los tipos de objetos deserializados. Es bueno que WCF se deserialice a tipos explícitos, pero para mi algoritmo genérico es más conveniente y más flexible tratar los documentos xml, principalmente porque los datos entrantes son polimórficos.
Sé que puedo tomar los objetos del parámetro y volver a serializarlos en XML, pero esto parece un desperdicio.
Entiendo que probablemente podría reemplazar los params fuertemente tipados con XElement para obtener lo que quiero para la implementación conveniencia, pero esto perderá los beneficios del tipado fuerte (comprobaciones de compilador, intellisense, auto documentación) para el cliente.
¿Hay alguna manera de decirle a WCF que en la implementación de mi servicio no necesito los objetos del parámetro deserializados, que los quiero como XML en su lugar?
O, ¿hay alguna manera de acceder al XML sin formato de los params como lo estaban antes de que WCF los deserialice en objetos? Si no puedo evitar que WCF pierda tiempo deserializando los objetos, al menos esto evitaría el costo de volver a reservarlos en XML.
Todavía pensaré que realmente vale la pena la molestia, por qué no acelerar la seralización y la deserilazación. –
@SurjitSamra No entiendo tu comentario. ¿Estás diciendo que WCF no vale la pena, o mi interés en acceder al XML sin formato no vale la pena? No puedo hacer nada para acelerar la serialización o la deserialización, salvo para evitar viajes innecesarios. – dthorpe
lo siento, no estaba claro en mi comentario, en realidad, me refiero al acceso a XML sin formato, ¿vale la pena la molestia? WCF vale la pena :): recientemente migré más de 10 años de un sistema de distribución remota de .NET en WCF, hay una fuerte serialización/deserialización personalizada para acelerar todo, si usas algún tipo de inyecciones, por ejemplo, un marc_s dijo en su Entonces, usted encontrará cuánto tiempo lleva todo, en mi caso, me alegré de que la deserialización solo llevara <30 ms. –