¿Esto está del lado del cliente?
Si es así, debe crear una instancia de WsHttpBinding y una EndpointAddress, y luego pasar esos dos al constructor del cliente proxy que toma estos dos parámetros.
// using System.ServiceModel;
WSHttpBinding binding = new WSHttpBinding();
EndpointAddress endpoint = new EndpointAddress(new Uri("http://localhost:9000/MyService"));
MyServiceClient client = new MyServiceClient(binding, endpoint);
Si está en el lado del servidor de las cosas, que necesita para crear mediante programación a su propia instancia de ServiceHost, y añadir los puntos finales de servicios adecuados a la misma.
ServiceHost svcHost = new ServiceHost(typeof(MyService), null);
svcHost.AddServiceEndpoint(typeof(IMyService),
new WSHttpBinding(),
"http://localhost:9000/MyService");
Por supuesto, puede agregar varios de estos puntos finales de servicio a su host de servicio. Una vez que haya terminado, debe abrir el host del servicio llamando al método .Open().
Si desea poder dinámicamente, en tiempo de ejecución, elegir qué configuración usar, puede definir varias configuraciones, cada una con un nombre único, y luego llamar al constructor apropiado (para su servidor de servicio o su cliente proxy) con el nombre de configuración que desea usar.
E.g. usted puede fácilmente tener:
<endpoint address="http://mydomain/MyService.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IASRService"
contract="ASRService.IASRService"
name="WSHttpBinding_IASRService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="https://mydomain/MyService2.svc"
binding="wsHttpBinding" bindingConfiguration="SecureHttpBinding_IASRService"
contract="ASRService.IASRService"
name="SecureWSHttpBinding_IASRService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="net.tcp://mydomain/MyService3.svc"
binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IASRService"
contract="ASRService.IASRService"
name="NetTcpBinding_IASRService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
(tres nombres diferentes, diferentes parámetros mediante la especificación de diferentes bindingConfigurations) y luego simplemente elegir el más adecuado para crear instancias de su servidor (o proxy de cliente).
Pero en ambos casos, servidor y cliente, debe elegir antes de crear realmente el servidor de servicio o el cliente proxy. Una vez creados, estos son inmutables; no puede modificarlos una vez que estén en funcionamiento.
Marc
alquímico, es posible que desee volver a evaluar su opción de respuesta aceptada –
En mi experiencia, si ves que necesitas para modificar un app.config en tiempo de ejecución, probablemente significa que se echa en falta un medio proporcionado .NET de lograr lo que estás tratando de hacer. La respuesta de Alex Knott a continuación lo aclara en este caso si todo lo que realmente intenta hacer es presionar una dirección diferente donde se aloja el mismo servicio exacto. –