You probably could add a web reference when developing (that will allow visual studio to discover the web service and have a working Intellisense).
In your code however, you can create the object dynamically.
Say you need to use an object called TestSoapClient to access your web service. If you want to create it with the URL from the web reference, you would just do
TestSoapClient testSoapClient = new TestSoapClient();
That code would use the default URL (i.e. the one that you pointed to when you added your web reference).
If you want to create the TestSoapClient object dynamically using a URL that you specify at runtime, go with something like this :
XmlDictionaryReaderQuotas readerQuotas = new XmlDictionaryReaderQuotas();
readerQuotas.MaxDepth = 32;
readerQuotas.MaxStringContentLength = 8192;
readerQuotas.MaxArrayLength = 16384;
readerQuotas.MaxBytesPerRead = 4096;
readerQuotas.MaxNameTableCharCount = 16384;
BasicHttpBinding basicHttpBinding = new BasicHttpBinding();
basicHttpBinding.Name = BindingName;
basicHttpBinding.CloseTimeout = new TimeSpan(0, 1, 0);
basicHttpBinding.OpenTimeout = new TimeSpan(0, 1, 0);
basicHttpBinding.ReceiveTimeout = new TimeSpan(0, 10, 0);
basicHttpBinding.SendTimeout = new TimeSpan(0, 1, 0);
basicHttpBinding.AllowCookies = false;
basicHttpBinding.BypassProxyOnLocal = false;
basicHttpBinding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
basicHttpBinding.MaxBufferSize = 65536;
basicHttpBinding.MaxBufferPoolSize = 524288;
basicHttpBinding.MaxReceivedMessageSize = 65536;
basicHttpBinding.MessageEncoding = WSMessageEncoding.Text;
basicHttpBinding.TextEncoding = Encoding.UTF8;
basicHttpBinding.TransferMode = TransferMode.Buffered;
basicHttpBinding.UseDefaultWebProxy = true;
basicHttpBinding.ReaderQuotas = readerQuotas;
basicHttpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm;
basicHttpBinding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
EndpointAddress endpointAddress = new EndpointAddress("YourDynamicUrl");
TestSoapClient testSoapClient = new TestSoapClient(basicHttpBinding, endpointAddress);
That way the value of the web reference URL and the values in the config file won't be used at runtime.