Freigeben über


DiscoveryClientProtocol.ResolveOneLevel-Methode

Löst alle Verweise auf Discovery-Dokumente, XSD-Schemas (XML Schema Definition) und Dienstbeschreibungen in References sowie Verweise auf, die in diesen Discovery-Dokumenten gefunden wurden.

Namespace: System.Web.Services.Discovery
Assembly: System.Web.Services (in system.web.services.dll)

Syntax

'Declaration
Public Sub ResolveOneLevel
'Usage
Dim instance As DiscoveryClientProtocol

instance.ResolveOneLevel
public void ResolveOneLevel ()
public:
void ResolveOneLevel ()
public void ResolveOneLevel ()
public function ResolveOneLevel ()

Hinweise

ResolveOneLevel löst alle gefundenen gültigen Verweise auf und platziert sie in der Documents-Eigenschaft. Sowohl ResolveAll als auch ResolveOneLevel downloaden und überprüfen XSD-Schemas und Dienstbeschreibungen in der References-Eigenschaft. Die Behandlung von Discovery-Dokumenten unterscheidet sich jedoch bei beiden Methoden. ResolveOneLevel löst alle Verweise in Discovery-Dokumenten in der References-Eigenschaft auf. Wenn ein Discovery-Dokument Verweise auf andere Discovery-Dokumente enthält, löst ResolveOneLevel nur diese Discovery-Dokumente auf. In diesen Discovery-Dokumenten gefundene, eine Ebene tief geschachtelte Discovery-Dokumente werden von ResolveOneLevel nicht aufgelöst, während ResolveAll alle Discovery-Dokumente auflöst. ResolveAll fährt mit dem Auflösen von Verweisen in geschachtelten Discovery-Dokumenten fort, bis keine weiteren Verweise mehr vorhanden sind.

Fehler, die während des von ResolveOneLevel ausgeführten Überprüfungsvorgangs auftreten, werden nicht zum Zeitpunkt ihres Auftretens ausgelöst, sondern gesammelt und der Errors-Eigenschaft hinzugefügt.

Beispiel

Das folgende Codebeispiel ist ein Web Form, das ein DataGrid mit den ausführlichen Informationen über die Dokumente in der Documents-Eigenschaft zusammen mit den während der Ausführung eines XML Web Services Discovery-Tools in den einzelnen Dokumenten gefundenen Verweisen füllt. Die PopulateGrid-Methode füllt das DataGrid mit den Ergebnissen des Aufrufs von DiscoverAny, worauf ein Aufruf von ResolveOneLevel folgt.

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 references just one level deep.
     client.ResolveOneLevel()
           
    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
 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 references just one level deep/
        client.ResolveOneLevel();
      }
      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>";
}

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

DiscoveryClientProtocol-Klasse
DiscoveryClientProtocol-Member
System.Web.Services.Discovery-Namespace