Vous pourriez probablement ajouter une référence Web lors du développement (cela permettra à Visual Studio de découvrir le service Web et d'avoir un Intellisense fonctionnel).
Cependant, dans votre code, vous pouvez créer l'objet dynamiquement.
Dites que vous devez utiliser un objet appelé TestSoapClient pour accéder à votre service Web. Si vous voulez créer avec l'URL de la référence Web, vous suffit de faire
TestSoapClient testSoapClient = new TestSoapClient();
Ce code serait utiliser l'URL par défaut (à savoir l'un que vous l'avez fait quand vous avez ajouté votre référence Web).
Si vous voulez créer l'objet TestSoapClient dynamiquement en utilisant une URL que vous spécifiez lors de l'exécution, rendez-vous avec quelque chose comme ceci:
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);
De cette façon, la valeur de l'URL de référence Web et les valeurs dans la configuration le fichier ne sera pas utilisé lors de l'exécution.
Merci pour la réponse rapide. Bien que je suis toujours confus à ce sujet - dois-je créer une référence Web aux services pour faire ce que vous avez dit? – Alka
vous feriez avec la solution ci-dessus, si vous regardez le code de référence web, vous trouverez un fichier appelé reference.cs qui est le code que le webservice utilise, si vous voulez créer votre propre proxy webservice c'est un bon point de départ . – Iain