DiscoveryClientProtocol.ResolveOneLevel Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Risolve tutti i riferimenti ai documenti di individuazione, agli schemi XSD (XML Schema Definition) e alle descrizioni di servizi nella proprietà References nonché tutti i riferimenti trovati nei documenti di individuazione in questione.
public:
void ResolveOneLevel();
public void ResolveOneLevel ();
member this.ResolveOneLevel : unit -> unit
Public Sub ResolveOneLevel ()
Esempio
L'esempio di codice seguente è un Web Form che popola un DataGrid oggetto con i dettagli sui documenti nella Documents proprietà insieme ai riferimenti trovati in ogni documento durante un'individuazione dei servizi Web XML. Il PopulateGrid
metodo riempie l'oggetto DataGrid con i risultati di una DiscoverAny chiamata seguita da una chiamata a ResolveOneLevel.
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
Commenti
ResolveOneLevel risolve tutti i riferimenti validi trovati e li inserisce nella Documents proprietà . Sia che ResolveAll ResolveOneLevel scaricare e verificare gli schemi XSD e le descrizioni dei servizi nella References proprietà . Tuttavia, i due metodi differiscono nel modo in cui gestiscono i documenti di individuazione. ResolveOneLevel risolve tutti i riferimenti nei documenti di individuazione all'interno della References proprietà . Se un documento di individuazione contiene riferimenti ad altri documenti di individuazione, ResolveOneLevel risolve solo i documenti di individuazione. I documenti di individuazione trovati nei documenti di individuazione annidati a un livello di profondità non vengono risolti da ResolveOneLevel, mentre ResolveAll vengono risolti tutti. ResolveAll continua a risolvere i riferimenti nei documenti di individuazione annidati fino a quando non sono presenti altri riferimenti.
Gli errori che si verificano durante il processo di verifica eseguiti da ResolveOneLevel non vengono generati al momento dell'occorrenza, ma vengono raccolti e aggiunti alla Errors proprietà.