Aunque he leído algunos artículos de WCF sobre el contrato del mensaje, pero no soy capaz de comprender cuál es el uso real del contrato del mensaje. ¿Puedo usar MessageContract
en lugar de DataContract
o en complemento al DataContract
?DataContract vs Message Contrato
Respuesta
A DataContract es una descripción de un tipo que está expuesto y respaldado por su servicio. A MessageContract es una abstracción sobre un mensaje SOAP que le permite dictar explícitamente la estructura del mensaje subyacente.
Están destinados a complementarse entre sí y servir para diferentes propósitos.
¿me puede dar alguna implementación? –
Al utilizar DataContract, el servicio puede exponer los tipos que intercambia. Pero el XML (SOAP) que se intercambia no se controla (aunque se ve afectado) por él. Mientras que MessageContract se puede usar para definir explícitamente cómo se estructurará el XML (mensaje SOAP).
Marc Gravellanswered a una pregunta similar WCF: MessageContract, DataContract ... Confused?
Una de las ventajas de mensaje-contratos es que se puede configurar la privacidad contra los miembros, pero en muchos casos esto no es necesario. En tales casos , prefiero mantener el contrato lo más simple posible, al igual que un contrato de datos .
Una de las mejores partes en el contrato de mensajes que siempre le ayudaría a poner seguridad adicional o escribir un contenedor con el propósito de Autenticación para realizar llamadas autenticadas al servicio (esto podría incluir tanto para WCF como WS) mientras el cliente realiza una llamada al servicio.
El contrato de mensaje también ayuda a diagnosticar la comunicación entre un cliente y el servicio mediante la introducción de un inspector de mensajes diferente.
Normalmente, cuando se crean aplicaciones Windows Communication Foundation (WCF), los desarrolladores prestan especial atención a las estructuras de datos y problemas de serialización y no necesitan preocuparse por la estructura de los mensajes en los que se transportan los datos. Para estas aplicaciones, crear contratos de datos para los parámetros o valores devueltos es sencillo.
Sin embargo, a veces el control total de la estructura de un mensaje SOAP es tan importante como el control de su contenido. Esto es especialmente cierto cuando la interoperabilidad es importante o para controlar específicamente problemas de seguridad en el nivel del mensaje o parte del mensaje. En estos casos, puede crear un contrato de mensaje que le permita especificar la estructura del mensaje SOAP preciso requerido.
Para más información: https://msdn.microsoft.com/en-us/library/ms730255(v=vs.110).aspx
- 1. Message Queue vs. Web Services?
- 2. Orchestration vs Message Driven Architecture
- 3. WCF DataContract vs serializar la clase
- 4. Message Queue vs Task Queue difference
- 5. Manejo de excepciones: contrato vs enfoque excepcional
- 6. Generar DataContract de XSD
- 7. DataContract serialización excepción (nombre de contrato de datos no se espera)
- 8. IsReference propiedad en contrato de datos
- 9. ¿qué significa contrato primero y contrato último?
- 10. ¿Qué contrato (Diseño por contrato) es mejor?
- 11. Incluyendo comentarios XML en DataContract Serializer Metadata
- 12. WCF contrato desajuste problema
- 13. WCF DataContract frente a la interfaz de DataContract
- 14. WCF DataContract - órgano de marcado isRequired = false
- 15. DataContract frente a XmlType
- 16. DataContract y herencia?
- 17. Java Email message Parser?
- 18. Message Queue o Scheduler
- 19. mq_receive: message too long
- 20. Rails Notification Message plugin?
- 21. Github commit message links
- 22. gcc error message repository
- 23. Boost Message Queue
- 24. Github commit message tagging
- 25. Terser Coloring of a LogCat Message?
- 26. Cómo serializar/deserializar un C# WCF DataContract a/desde XML
- 27. Persista un DataContract como XML en una base de datos
- 28. ¿Servicios web por contrato?
- 29. WCF Duplex Contrato
- 30. Obtener el nombre de todos los DataMembers en un DataContract
posible duplicado de [WCF:? MessageContract, DataContract ... Confundido] (http://stackoverflow.com/questions/673638/wcf-messagecontract-datacontract-confused) –
Consulte este enlace: http: //www.sujitbhujbal.com/2012/05/when-to-use-data-contract-and-message.html –
DataContract es el contrato sobre los datos (clases) que se envían y reciben sobre el servicio. MessageContract es una manera (opcionalmente) de definir la estructura de mensaje SOAP de bajo nivel. (pero no necesita hacer esto, se puede ignorar si tiene mensajes de datos básicos) –