Какова стандартная практика отказа от вызова службы WCF?

У меня есть клиент-серверная система, в которой один из неправильно названных сервисных вызовов на сервере должен быть устаревшим и заменен новым, лучше названным вызовом. Есть ли какая-то стандартная процедура для отказа от старого вызова службы, такая как регистрация его использования или возврат исключения сбоя или что-то в этом роде?

спасибо, Марк


person MStodd    schedule 05.11.2010    source источник


Ответы (1)


Вы не должны его переименовывать. Вы должны пометить его как устаревшее с помощью следующего атрибута:

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

и укажите, какой новый метод вызывать.

Таким образом, любые клиенты, которые все еще используют это, продолжат функционировать.

Стоит отметить, что этот атрибут будет скрывать свойства / методы из метаданных службы, поэтому любой клиент / потребитель, который создает или обновляет ссылку на эту службу, полностью потеряет свойство / метод и будет вынужден не использовать его.

person Liviu Mandras    schedule 05.11.2010
comment
Думаю, я не имел в виду переименовать. Мы создали более качественный сервисный вызов и оставили там старый. - person MStodd; 05.11.2010
comment
В этом случае просто пометьте старый метод как устаревший и, возможно, измените реализацию, чтобы он указывал на новый код (если действительно есть какой-то новый код). Но не меняйте подпись метода. - person Liviu Mandras; 05.11.2010
comment
Имейте в виду, что ObsoleteAttribute не влияет на классы клиентского прокси, сгенерированные Visual Studio (я предполагаю, что это также верно для классов, сгенерированных SvcUtil.exe). I.E. Это не дает вашим клиентам никаких указаний на то, что метод устарел. - person xr280xr; 13.05.2015