visual studio microsoft how example ejemplo consume c# wcf service reference

studio - wcf soap service c#



Tipos de complejos de referencia de servicio (3)

A menos que lo haya entendido mal, al marcar "Tipos de reutilización en los ensamblados a los que se hace referencia" en las configuraciones Avanzadas dentro de Agregar referencia de servicio, los contratos de datos que coincidan con los de un ensamblaje al que se hace referencia se reutilizarán y no se regenerarán.

Tengo una aplicación cliente que consume un servicio WCF que acepta y devuelve algunos parámetros de tipo complejo. estos tipos complejos se mantienen en un ensamblaje separado al que hacen referencia la aplicación cliente y el servicio WCF. El problema es que cuando agrego la referencia de servicio en la aplicación cliente, la clase de referencia generada crea sus propias versiones de los tipos de parámetros complejos. y por lo tanto no puedo pasar los tipos del ensamblaje que los tipos originales están definidos. no estoy seguro si eso es comprensible ...

La pregunta es ... ¿Tendré que escribir algún tipo de rutina de copia profunda reflexiva para construir eficazmente las clases generadas de referencia de servicio a partir de los tipos originales? o hay una mejor opción

cualquier ayuda como siempre muy felizmente recibida

nat


Cuando agregue una referencia de servicio al código, seleccione Advanced y verá una opción Reuse types in referenced assemblies . Si se asegura de que está marcado y la referencia se agrega al proyecto, WCF no generará los tipos de proxy y usará los tipos a los que se hace referencia.

Si ya ha agregado la referencia de servicio, primero haga referencia a sus tipos compartidos y luego haga clic con el botón derecho en la Referencia del servicio y seleccione Configure Service Reference para que vuelva a generar el código del cliente utilizando los tipos a los que se hace referencia.


No, puedes hacerlo: mira mi pregunta aquí:

WCF Service Reference genera su propia interfaz de contrato, no reutilizará la mía

Puede tener un ensamblado compartido con interfaces, tipos y tanto el servicio como el cliente pueden hacer referencia a él :)

La opción ''reutilizar los tipos referenciados'' cubre los tipos complejos, pero la respuesta anterior también cubre la reutilización del tipo de interfaz, que la opción IMO es mucho mejor y no está cubierta por esa opción VS.