Service Class
Groups together a set of related instances of the Port class that are associated with an XML Web service. This class cannot be inherited.
Assembly: System.Web.Services (in System.Web.Services.dll)
System.Web.Services.Description.DocumentableItem
System.Web.Services.Description.NamedItem
System.Web.Services.Description.Service
| Name | Description | |
|---|---|---|
![]() | Service() | Initializes a new instance of the Service class. |
| Name | Description | |
|---|---|---|
![]() | Documentation | Gets or sets the text documentation for the instance of the DocumentableItem.(Inherited from DocumentableItem.) |
![]() | DocumentationElement | Gets or sets the documentation element for the DocumentableItem.(Inherited from DocumentableItem.) |
![]() | ExtensibleAttributes | Gets or sets an array of type XmlAttribute that represents attribute extensions of WSDL to comply with Web Services Interoperability (WS-I) Basic Profile 1.1.(Inherited from DocumentableItem.) |
![]() | Extensions | Gets the collection of extensibility elements associated with the Service.(Overrides DocumentableItem.Extensions.) |
![]() | Name | Gets or sets the name of the item.(Inherited from NamedItem.) |
![]() | Namespaces | Gets or sets the dictionary of namespace prefixes and namespaces used to preserve namespace prefixes and namespaces when a ServiceDescription object is constructed.(Inherited from DocumentableItem.) |
![]() | Ports | Gets the collection of Port instances contained in the Service. |
![]() | ServiceDescription | Gets the ServiceDescription of which the Service is a member. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
The Service class corresponds to the Web Services Description Language (WSDL) <service> element enclosed by the <definitions> root element. For more information about WSDL, see the specification at http://www.w3.org/TR/wsdl/.
using System; using System.Web.Services.Description; using System.Xml; class MyServiceClass { public static void Main() { try { // Read a WSDL document. ServiceDescription myServiceDescription = ServiceDescription.Read("MathService_CS.wsdl"); ServiceCollection myServiceCollection = myServiceDescription.Services; int noOfServices = myServiceCollection.Count; Console.WriteLine("\nTotal number of services: " + noOfServices); // Gets a reference to the service. Service myOldService = myServiceCollection[0]; Console.WriteLine("No. of ports in the service: "+ myServiceCollection[0].Ports.Count); Console.WriteLine("These are the ports in the service:"); for(int i = 0 ; i < myOldService.Ports.Count; i++) Console.WriteLine("Port name: " + myOldService.Ports[i].Name); Console.WriteLine("Service name: " + myOldService.Name); Service myService = new Service(); myService.Name = "MathService"; // Add the Ports to the newly created Service. for(int i = 0; i < myOldService.Ports.Count; i++) { string PortName = myServiceCollection[0].Ports[i].Name; string BindingName = myServiceCollection[0].Ports[i].Binding.Name; myService.Ports.Add(CreatePort(PortName,BindingName, myServiceDescription.TargetNamespace)); } Console.WriteLine("Newly created ports -"); for(int i = 0; i < myService.Ports.Count; i++) Console.WriteLine("Port name: " + myOldService.Ports[i].Name); // Add the extensions to the newly created Service. int noOfExtensions = myOldService.Extensions.Count; Console.WriteLine("No. of extensions: " + noOfExtensions); if (noOfExtensions > 0) { for(int i = 0; i < myOldService.Ports.Count; i++) myService.Extensions.Add(myServiceCollection[0].Extensions[i]); } // Remove the service from the collection. myServiceCollection.Remove(myOldService); // Add the newly created service. myServiceCollection.Add(myService); myServiceDescription.Write("MathService_New.wsdl"); } catch(Exception e) { Console.WriteLine("Exception: " + e.Message); } } public static Port CreatePort(string PortName,string BindingName, string targetNamespace) { Port myPort = new Port(); myPort.Name = PortName; myPort.Binding = new XmlQualifiedName(BindingName,targetNamespace); // Create a SoapAddress extensibility element to add to the port. SoapAddressBinding mySoapAddressBinding = new SoapAddressBinding(); mySoapAddressBinding.Location = "http://localhost/ServiceClass/MathService_CS.asmx"; myPort.Extensions.Add(mySoapAddressBinding); return myPort; } }
Available since 1.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

