Creando un proyecto con Web Service Factory ya me había ocurrido el error, a un compañero de trabajo el paso algo parecido, veo que el valor que vienen con los mensajes de los contratos por default viene con false.
Cuando un cliente realiza la referencia al servicio genera error:
Error 3 The type 'Foo.Bar.Client.BarManagementProxy.Foo' already contains a definition for 'Id' C:\Users\User\Document s\Visual Studio 2008\Projects\Bar\Foo.Bar\Tests\Foo.Bar.Client \Service References\BarManagementProxy.cs 672 20 Foo.Bar.Client
Con todos nuestros objetos veremos que ya la clase contiene una definición de estos.
Como lo ven usamos la opción de Is Wrapped = True
Esto ocurre porque el namespace del contrato de Request y de Response son los mismos o sea el decoración que vemos en el contrato WrapperNamespace.
Según el post de “Los servicios WCF comparten el contrato no el tipo, entonces si este contrato es expresado usando WSDL (que se genera automáticamente) mira varios atributos en el Service Contract, datos y Message contracts, Ahora es importante entender que si se definen dos interfaces y a las dos le coloca el mismo service contract como atributo , desde la perspectiva de programación esto es posible ya que son distintas. Pero WSDL no conoce de interfaces C#. Y si hay dos servicios con el mismo nombre debería usar dos namespaces diferentes para hacerlos distintos
Leave a Reply