2010-11-05 11 views
7

Tengo un sistema cliente/servidor en el que una de las llamadas de servicio nombradas incorrectamente en el servidor debe ser obsoleta y reemplazada por la llamada nueva y mejor nombrada. ¿Existe algún procedimiento estándar para anular la llamada al servicio antiguo, como registrar su uso o devolver una excepción de falla o algo así?¿Cuál es la práctica estándar para desaprobar una llamada de servicio WCF?

gracias, Marcos

Respuesta

9

Usted no debe cambiar su nombre. Usted debe marcarlo como obsoleta con el atributo siguiente:

[Obsolete("This is a message describing why this method is obsolete")] 

e indicar cuál es el método más reciente para llamar.

Al hacer esto, los clientes que sigan usando esto continuarán funcionando.

Vale la pena señalar que este atributo ocultará propiedades/métodos de los metadatos del servicio, por lo que cualquier cliente/consumidor que cree o actualice una referencia a este servicio perderá completamente la propiedad/método y se verá forzado a no usarlo.

+0

Supongo que no quise decir cambiar el nombre. Creamos una mejor llamada de servicio con nombre y dejamos la anterior allí. – MStodd

+0

En este caso, simplemente marque el método antiguo como obsoleto y tal vez cambie la implementación para que apunte al nuevo código (si realmente hay algún código nuevo). Pero no cambie la firma del método. –

+0

Tenga en cuenta que ObsoleteAttribute no afecta a las clases proxy de cliente generadas por Visual Studio (supongo que también es cierto para las generadas por SvcUtil.exe). ES DECIR. No proporciona a sus clientes ninguna indicación de que el método esté en desuso. – xr280xr

Cuestiones relacionadas