Я придерживаюсь более экстремального взгляда на это. Зачем что-то менять? Вместо этого, почему бы не создать новый контракт, унаследовав от старого и добавив новую операцию? Новый контракт может быть выставлен в отдельной конечной точке в той же службе.
Это может быть паранойя, неосведомленная формальным доказательством, но мне кажется, что, если возможно создать клиента, который может отличить, то возможно, что какой-то клиент "сломается", когда вы сделаете изменение. Учтите, что когда вы изменяете контракт на обслуживание, вы не просто изменяете код службы - вы меняете код прокси-сервера в любом клиенте, который обновляет его ссылку на службу. Некоторые, более консервативные клиенты, могут посчитать это причиной для повторного тестирования своего клиентского кода - в конце концов, у них могут быть правила, согласно которым они должны повторно тестировать свой код всякий раз, когда в него вносятся какие-либо изменения.
Существующий клиент будет ссылаться на исходную конечную точку, поэтому не будет влиять добавление новой конечной точки - код не изменится, если выполнено «Обновление справочной службы».
Кроме того, почему даже думают об этом , если вам это не нужно?