ОК, поэтому краткий ответ: «Вы не можете». Чем дольше ответ, тем лучше, немного поработав.
Если вы размещаете это вне IIS, на самом деле разумно загрузить сам раздел конфигурации и проанализировать его, так как вы можете привести его к классу конфигурации WCF:
ServiceModelSectionGroup serviceModelGroup =
cfg.GetSectionGroup("system.serviceModel")
as ServiceModelSectionGroup;
Немного грязно, но это работает. Проблема возникает с IIS - размещенные службы IIS наследуют свой адрес от IIS и игнорируют полностью определенные адреса в любом файле конфигурации.
Но вы можете обмануть, вы можете использовать фабрику хостов для пользовательских сервисов. Это означает изменение кода запуска службы в коде или в файле .svc для IIS. Фабрика хоста настраиваемых сервисов происходит от ServiceHostFactory и переопределяет
protected override ServiceHost CreateServiceHost(Type serviceType,
Uri[] baseAddresses)
Как видите, вы получаете один или несколько объектов URI, содержащих (потенциальные) адреса вашей службы. На этом этапе вы можете хранить их где-нибудь (возможно, в таблице синглтон-поиска) в зависимости от типа сервиса, а затем запрашивать это в другом месте.
Тогда в вашем файле .svc вам нужно немного его изменить; например
<%@ServiceHost Service="MyService.ServiceName"
Factory="MyService.ServiceHostFactory" %>
<%@Assembly Name="MyService" %>