Search code examples
silverlightwcfwcf-client

Modify Endpoint Address of a WCF Client Proxy


When I'm making web service calls from Silverlight using a service reference, is there any way to have the (generated) SoapClient objects modify the address that they call the service on?

Specifically, I'd like to tack on a QueryString value onto each call that the service makes. So if I have

DataService.SilverlightServiceSoapClient C = new DataService.SilverlightServiceSoapClient();

Is there any way to do something like:

C.Address += "?Foo=Bar";

Which would allow me to, from my WebMethod, say:

HttpContext.Current.Request.QueryString["foo"];

Obviously I can modify my WebMethods to take this value in as a parameter, but I'd like to avoid doing that if possible.


Solution

  • Since you are already using service references, you can simply use the overload of the proxy class constructor that accepts an EndpointAddress as a parameter. Alternatively, you can create multiple endpoint configuration and have the code simply use the chosen configuration - which may include URL changes.

    See Understanding Generated Client Code on MSDN.