DiscoveryClientProtocol.Discover(String) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
제공된 URL이 검색 문서인지 여부를 확인하기 위해 해당 URL을 검색합니다.
public:
System::Web::Services::Discovery::DiscoveryDocument ^ Discover(System::String ^ url);
public System.Web.Services.Discovery.DiscoveryDocument Discover (string url);
member this.Discover : string -> System.Web.Services.Discovery.DiscoveryDocument
Public Function Discover (url As String) As DiscoveryDocument
매개 변수
- url
- String
XML Web services 검색이 시작되는 URL입니다.
반환
제공된 URL에서 XML Web services 검색을 통해 가져온 결과를 포함하는 DiscoveryDocument입니다.
예외
제공된 URL에 액세스했을 때 OK가 아닌 다른 HTTP 상태 코드가 반환되는 경우
url
매개 변수는 유효한 URL이지만 유효한 검색 문서를 가리키지 않습니다.
예제
다음 코드 예제는 XML 웹 서비스를 검색하는 동안 각 문서에 있는 Documents 참조와 함께 속성의 문서에 대한 세부 정보로 채우는 DataGrid 웹 양식입니다. 메서드는 PopulateGrid
호출의 결과 Discover 와 다음에 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;
// Only discover discovery documents, which might contain references to other types of discoverable documents.
doc = client.Discover(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
' Only discover discovery documents, which might contain references to other types of discoverable documents.
doc = client.Discover(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
설명
이 메서드는 Discover 제공된 URL이 검색 문서인 것으로 예상합니다. URL이 서비스 설명 또는 XML 스키마를 참조하는 경우 예외가 throw됩니다. XML 스키마 또는 서비스 설명을 검색하려면 메서드를 호출합니다 DiscoverAny .
제공된 URL이 유효한 검색 문서를 가리키는 경우 제공된 URL의 검색 문서가 및 References 컬렉션에 Documents 추가됩니다. 또한 검색 문서 내의 참조는 컬렉션에 References 추가되지만 유효한 검색 문서를 가리키는 것으로 확인되지는 않습니다. 참조를 확인하려면 유효한 검색 문서를 가리키고 또는 ResolveOneLevel 메서드를 ResolveAll 호출합니다.