DiscoveryClientProtocol.ResolveOneLevel 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
해당 검색 문서에서 찾은 참조뿐만 아니라 References에 있는 검색 문서, XSD(XML Schema Definition) 스키마 및 서비스 설명에 대한 모든 참조도 확인합니다.
public:
void ResolveOneLevel();
public void ResolveOneLevel ();
member this.ResolveOneLevel : unit -> unit
Public Sub ResolveOneLevel ()
예제
다음 코드 예제는 XML 웹 서비스를 검색하는 동안 각 문서에 있는 Documents 참조와 함께 속성의 문서에 대한 세부 정보로 채우는 DataGrid 웹 양식입니다. 메서드는 PopulateGrid
호출의 결과 DiscoverAny 와 다음에 ResolveOneLevel호출을 채웁니다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 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>";
}
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
설명
ResolveOneLevel 은 찾은 모든 유효한 참조를 확인하고 속성에 Documents 배치합니다. ResolveOneLevel 속성에서 References XSD 스키마 및 서비스 설명을 다운로드 ResolveAll 하고 확인합니다. 그러나 두 가지 방법은 검색 문서를 처리하는 방법이 다릅니다. ResolveOneLevel 는 속성 내 검색 문서의 모든 참조를 확인합니다 References . 검색 문서에 다른 검색 문서에 대한 참조가 포함된 경우 해당 검색 ResolveOneLevel 문서만 확인합니다. 한 수준 깊이 중첩된 검색 문서에서 찾은 검색 문서는 해결되지 ResolveOneLevel않는 반면 ResolveAll 모두 해결됩니다. ResolveAll 는 더 이상 참조가 없을 때까지 중첩된 검색 문서에서 참조를 계속 확인합니다.
확인 프로세스 ResolveOneLevel 중에 발생하는 오류는 발생 시 throw되지 않고 수집되어 속성에 Errors 추가됩니다.