다음을 통해 공유


DiscoveryClientProtocol.ResolveAll 메서드

정의

참조된 검색 문서에서 찾은 참조뿐만 아니라 References 속성에 있는 검색 문서, XSD(XML Schema Definition) 스키마 및 서비스 설명에 대한 모든 참조도 확인합니다.

public:
 void ResolveAll();
public void ResolveAll ();
member this.ResolveAll : unit -> unit
Public Sub ResolveAll ()

예제

다음 코드 예제는 XML 웹 서비스를 검색하는 동안 각 문서에 있는 Documents 참조와 함께 속성의 문서에 대한 세부 정보로 채우는 DataGrid 웹 양식입니다. 메서드는 PopulateGrid 호출의 결과 DiscoverAny 와 다음에 ResolveAll호출을 채웁니다DataGrid.

 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>";
}
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

설명

ResolveAll 은 찾은 모든 유효한 참조를 확인하고 속성에 Documents 배치합니다. ResolveOneLevel 속성에서 References XSD 스키마 및 서비스 설명을 다운로드 ResolveAll 하고 확인합니다. 그러나 두 가지 방법은 검색 문서를 처리하는 방법이 다릅니다. ResolveOneLevel 는 속성 내 References 검색 문서의 모든 참조를 확인합니다. 검색 문서에 다른 검색 문서에 ResolveOneLevel 대한 참조가 포함되어 있으면 해당 검색 문서만 확인합니다. 한 수준 깊이 중첩된 검색 문서에서 찾은 검색 문서는 해결되지 ResolveOneLevel않는 반면 ResolveAll , 모두 해결됩니다. ResolveAll 는 더 이상 참조가 없을 때까지 중첩된 검색 문서에서 참조를 계속 확인합니다.

확인 프로세스 ResolveAll 중에 발생하는 오류는 발생 시 throw되지 않고 수집되어 속성에 Errors 추가됩니다.

적용 대상