This documentation is archived and is not being maintained.

DiscoveryClientProtocol.ResolveAll Method

Resolves all references to discovery documents, XML Schema Definition (XSD) schemas, and service descriptions in the References property, as well as references found in referenced discovery documents.

[Visual Basic]
Public Sub ResolveAll()
[C#]
public void ResolveAll();
[C++]
public: void ResolveAll();
[JScript]
public function ResolveAll();

Remarks

ResolveAll resolves all valid references it finds and places them in the Documents property. Both ResolveAll and ResolveOneLevel download and verify XSD schemas and service descriptions in the References property. However, the two methods differ in how they handle discovery documents. ResolveOneLevel resolves all references in discovery documents within the References property; if a discovery document contains references to other discovery documents, ResolveOneLevel resolves just those discovery documents. Discovery documents found in those discovery documents nested one level deep are not resolved by ResolveOneLevel; whereas ResolveAll resolves them all. ResolveAll continues to resolve references in nested discovery documents until there are no more references.

Errors occurring during the verification process done by ResolveAll are not thrown at the time of occurrence, but rather collected and added to the Errors property.

Example

[Visual Basic, C#] The following code example is a Web Form that populates a DataGrid with the details about the documents in the Documents property together with the references found in each document during an XML Web services discovery. The PopulateGrid method fills the DataGrid with the results from a DiscoverAny invocation followed by a call to ResolveAll.

[Visual Basic] 
Public Sub Discover_Click(Source As Object, e as EventArgs )
   ' Specify the URL to discover.
   Dim sourceUrl as String = DiscoURL.Text
   ' Specify the URL to save discovery results to or read from.
   Dim outputDirectory As String = DiscoDir.Text

   Dim client as DiscoveryClientProtocol = new DiscoveryClientProtocol()
   ' Use default credentials to access the URL being discovered.
   client.Credentials = CredentialCache.DefaultCredentials
   Try 
        Dim doc As DiscoveryDocument
     ' Discover the URL for any discoverable documents. 
     doc = client.DiscoverAny(sourceUrl)

 ' Resolve all possible references from the supplied URL.
     client.ResolveAll()
           
    Catch e2 As Exception
          DiscoveryResultsGrid.Columns.Clear()
       Status.Text = e2.Message
    End Try

    ' If documents were discovered, display the results in a data grid.
    If (client.Documents.Count > 0) Then
         'populate our Grid with the discovery results
     PopulateGrid(client)
    End If

    ' Save the discovery results to disk.        
    Dim results As DiscoveryClientResultCollection 
    results = client.WriteAll(outputDirectory, "results.discomap")
    Status.Text = "The following file holds the links to each of the discovery results: <b>" + _ 
                                  Path.Combine(outputDirectory,"results.discomap") + "</b>"
   End Sub

[C#] 
protected void Discover_Click(object Source, EventArgs e)
{
 // Specify the URL to discover.
 string sourceUrl = DiscoURL.Text;
 // Specify the URL to save discovery results to or read from.
 string outputDirectory = DiscoDir.Text;

     DiscoveryClientProtocol client = new DiscoveryClientProtocol();
 // Use default credentials to access the URL being discovered.
     client.Credentials = CredentialCache.DefaultCredentials;

     try 
     {
          DiscoveryDocument doc;
       
       // Discover the URL for any discoverable documents. 
   doc = client.DiscoverAny(sourceUrl);
  
       // Resolve all possible references from the supplied URL.
       client.ResolveAll();
     }
     catch ( Exception e2) 
     {
       DiscoveryResultsGrid.Columns.Clear();
       Status.Text = e2.Message;
     }
 // If documents were discovered, display the results in a data grid.
     if (client.Documents.Count > 0)
     PopulateGrid(client);

 // Save the discovery results to disk.
     DiscoveryClientResultCollection results = client.WriteAll(outputDirectory, "results.discomap");
     Status.Text = "The following file holds the links to each of the discovery results: <b>" + 
                                 Path.Combine(outputDirectory,"results.discomap") + "</b>";
  }

[C++, JScript] No example is available for C++ or JScript. To view a Visual Basic or C# example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also

DiscoveryClientProtocol Class | DiscoveryClientProtocol Members | System.Web.Services.Discovery Namespace

Show: