DiscoveryClientProtocol.DiscoverAny(String) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Обнаруживает указанный URL-адрес, чтобы определить, является ли он документом обнаружения, описанием службы или схемой определения схемы XML (XSD).
public:
System::Web::Services::Discovery::DiscoveryDocument ^ DiscoverAny(System::String ^ url);
public System.Web.Services.Discovery.DiscoveryDocument DiscoverAny (string url);
member this.DiscoverAny : string -> System.Web.Services.Discovery.DiscoveryDocument
Public Function DiscoverAny (url As String) As DiscoveryDocument
Параметры
- url
- String
URL-адрес, с которого начинается обнаружение веб-служб XML.
Возвращаемое значение
Класс DiscoveryDocument, содержащий результаты обнаружения веб-служб XML по указанному URL-адресу. Если параметр url
ссылается на описание службы или на схему XSD, для него в памяти будет создан класс DiscoveryDocument.
Исключения
При доступе к указанному URL-адресу возвращен код статуса HTTP, отличный от OK.
Параметр url
является допустимым URL-адресом, но не указывает на допустимый документ обнаружения, описание службы или схему XSD.
Примеры
В следующем примере кода используется веб-форма, которая заполняет DataGrid сведениями о документах в свойстве Documents вместе со ссылками, найденными в каждом документе во время обнаружения веб-служб XML. Метод PopulateGrid
заполняет DataGrid результаты вызова DiscoverAny , за которым следует вызов ResolveAll.
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 the DataGrid 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
Комментарии
Метод DiscoverAny определяет, является ли предоставленный URL-адрес документом обнаружения, описанием службы или схемой XSD. Если известно, что URL-адрес ссылается только на документ обнаружения, Discover может быть вызван метод .
Если указанный URL-адрес указывает на допустимый документ обнаружения, схему XSD или описание службы, документ обнаружения по указанному URL-адресу добавляется в Documents коллекции и References . Если указанный URL-адрес ссылается на схему XSD или описание DiscoveryDocument службы, создается в памяти и добавляется в Documents коллекции и References . Кроме того, ссылки в документе обнаружения добавляются в коллекцию References , но не проверяются, чтобы они указывали на допустимые документы обнаружения. Чтобы убедиться, что ссылки указывают на допустимые ResolveAll документы обнаружения, вызовите методы или ResolveOneLevel .