Программно добавляем конечную точку

У меня есть служба WCF, которую я подключаю в клиентском приложении. Я использую следующее в файле конфигурации.

<system.serviceModel>  
    <bindings>  
      <basicHttpBinding>  
        <binding name="MyNameSpace.TestService" closeTimeout="00:01:00" openTimeout="00:01:00"  
            receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"  
            bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"  
            maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647"  
            messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"  
            useDefaultWebProxy="true">  
          <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="16384"  
              maxBytesPerRead="4096" maxNameTableCharCount="16384" />  
          <security mode="None">  
            <transport clientCredentialType="None" proxyCredentialType="None"  
                realm="" />  
            <message clientCredentialType="UserName" algorithmSuite="Default" />  
          </security>  
        </binding>  
      </basicHttpBinding>  
    </bindings>  
    <client>  
      <endpoint address="http://localhost:9100/TestService" binding="basicHttpBinding"  
          bindingConfiguration="MyNameSpace.TestService" contract="TestService.IService" name="MyNameSpace.TestService" />  
    </client>  
</system.serviceModel>  

В коде я вызываю API для этого сервиса следующим образом:

TestServiceClient client = new TestServiceClient()
client.BlahBlah()

Теперь я хочу определить конечную точку прагматически. Как это можно сделать? Я закомментировал раздел из файла конфигурации, так как думал, что мне придется поместить некоторый код в экземпляр TestServiceClient для динамического добавления конечной точки, но затем он генерирует следующее исключение в точке, где создается экземпляр TestServiceClient.

Could not find default endpoint element that references contract 'TestService.IService' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this contract could be found in the client element.

Как я могу сделать это? Также будет приветствоваться любая точка в примерах кода для добавления конечной точки программно.

Ответы на вопрос(3)

Ваш ответ на вопрос