Даже проще, чем обновить файл конфигурации на стороне клиента ??
То, что вы могли бы рассмотреть, - это сконфигурировать клиентскую конфигурацию в отдельном файле и создать ее для «обычного» использования, а другую для «разработки на компьютере».
Затем в вашей конфигурации WCF используйте внешние файлы конфигурации:
<system.serviceModel>
<client configSource="client.normal.config" />
</system.serviceModel>
и если вам нужно переключиться на использование "dev machine", используйте
<system.serviceModel>
<client configSource="client.localhost.config" />
</system.serviceModel>
Эти два внешних файла конфигурации будут выглядеть примерно так:
[client.normal.config]
<?xml version="1.0" encoding="utf-8" ?>
<client>
<endpoint name="...." address="http://YourServer/Service1" ...... />
<endpoint name="...." address="http://YourServer/Service2" ...... />
....
<endpoint name="...." address="http://YourServer/ServiceX" ...... />
</client>
[client.localhost.config]
<?xml version="1.0" encoding="utf-8" ?>
<client>
<endpoint name="...." address="http://localhost/Service1" ...... />
<endpoint name="...." address="http://localhost/Service2" ...... />
....
<endpoint name="...." address="http://localhost/ServiceX" ...... />
</client>
Таким образом, вы создаете свои файлы конфигурации один раз для обычного использования и один раз для использования на локальном хосте - и вы можете легко переключаться между двумя базовыми конфигурациями.
Это не особенность WCF - это особенность конфигурации .NET. Любой раздел конфигурации (но не группы разделов конфигурации) может быть выведен в отдельный файл * .config. Вы можете поместить другие части конфигурации WCF во внешние файлы конфигурации (но вы не можете экстернализовать весь узел <system.serviceModel>
, поскольку это группа разделов конфигурации, а не раздел конфигурации).