Chapter 33. The System.Web.Services.Discovery Namespace
The System.Web.Services.Discovery namespace includes the classes that model .NET web service discovery documents (usually seen as .disco or .vsdisco files). These classes are generally not used directly, as the discovery process is automated in tools such as Visual Studio .NET. However, they could be used to create programs that worked with discovery documents for reasons other than consuming a given web service. For example, you could create a utility that parses multiple discovery documents and retrieves aggregate information.
The discovery process has little to do with Universal Description, Design, Discovery, and Integration (UDDI), the cross-vendor initiative for publishing information about business and their web services in an online repository. (In fact, UDDI repositories can provide links to web services or discovery documents.) Discovery documents are a simple approach—essentially nothing more than a collection of links without any associated documentation or categorization. These "links" can point to WSDL service descriptions, XSD schemas, or other discovery documents. It's also important to note that discovery in Versions 1.0 and 1.1 of the .NET Framework does not use the WS-Inspection standard, which is slated to eventually replace DISCO.
A good starting point to understanding this namespace is the DiscoveryDocument class, which represents a single .disco or .vsdisco file. The most useful type in this namespace is the DiscoveryClientProtocol class, which allows you to invoke web service discovery programmatically. Figure 33-1 shows the types in this namespace.