¿Existe alguna manera de cambiar el espacio de nombres .NET de una interfaz WCF ServiceContract y aún así hacer que el servicio WCF sea compatible con versiones anteriores con clientes que están utilizando el antiguo (idéntico excepto por el espacio de nombres) ServiceContract? Por ejemplo, supongamos que tengo (en vb.net):¿Puedo cambiar el espacio de nombre de la interfaz de WCF ServiceContract sin cambiar el servicio?
Namespace MyCompany.MyPoorlyNamedProject
<ServiceContract(Name:="ThingService")> _
<CLSCompliant(True)> _
Public Interface IThingService
...
End Interface
EndNamespace
Y quiero cambiar eso a
Namespace MyCompany.MyProject
<ServiceContract(Name:="ThingService")> _
<CLSCompliant(True)> _
Public Interface IThingService
...
End Interface
End Namespace
Sin cambiar el servicio en absoluto.
Intenté simplemente hacerlo, pero mis xsds a los que se hace referencia desde el wsdl muestran el nuevo nombre del espacio de nombres, que parece ser una incompatibilidad.
¿Alguna idea?
1 para una respuesta completa – vlad
no estoy usando "Agregar referencia de servicio" - que dio resultados inesperados - ver http://stackoverflow.com/questions/1294269/getting-bad-generated-code-from-update-service-reference. Tal vez esto funcionará de todos modos? Lo intentaré pronto. –
@Patrick Szalapski: bueno, en ese caso, probablemente estés compartiendo el ensamblaje de contratos entre el servicio y el cliente, ¿verdad? En ese caso, ** por supuesto **, cambiar los espacios de nombres en su contrato de servicio ** afectará ** al cliente, no hay forma de evitarlo. –