... есть ли способ обновить ссылку WCF, не взорвав ее?
Не совсем. Когда вы обновляете ссылку на службу, конечный результат, в конечном счете детерминированный, безусловно непредсказуем.
Чтобы этого избежать, не беспокойтесь о рекомендациях по обслуживанию. Просто создайте двоичную ссылку на контракты на обслуживание и используйте стек канала WCF для вызова службы, как описано here.
Вы можете сделать это, только если у вас есть доступ к служебным двоичным файлам.
ссылка обслуживание имеет свое место, если вы не хотите, чтобы ссылаться на сборке контракта (возможно потому, что не существует)
Я согласен ссылка услуг имеет свое место: это место на в общедоступной сети, или, как вы отмечаете, любая другая ситуация, когда получение сервисных сборок невозможно.
Я действительно пытаюсь представить себе ситуацию, когда было бы предпочтительнее использовать ссылку на службу по двоичной ссылке, если у вас есть доступ к сборке служб.
Я полагаю, что одна из причин может заключаться в том, что типы, определяющие контракты на обслуживание и операции/данные, объединены в сборку uber с кучей других вещей, но в этом случае лучше всего сделать их в отдельную сборку и снабжать сервис и потребителя, ссылаясь на него (в идеале через NuGet).
Вам не кажется, что совет слишком предписывающий? Ссылки на службы имеют место, если вы не хотите ссылаться на сборку контракта (возможно, потому, что она не существует). – usr
@usr Я ответил ответом. Я предполагаю, что место, откуда я родом, - это тот, у кого очень мало опыта проектирования и потребления общественных услуг, поэтому я всегда разрабатываю свои услуги таким образом, чтобы их можно было использовать через двоичную ссылку. –
OK, хороший совет сейчас. +1 – usr