DiscoveryDocumentReference.ResolveAll Method
Verifies that all referenced documents within the discovery document are valid.
[Visual Basic] Public Sub ResolveAll() [C#] public void ResolveAll(); [C++] public: void ResolveAll(); [JScript] public function ResolveAll();
Exceptions
| Exception Type | Condition |
|---|---|
| InvalidOperationException | The ClientProtocol property is a null reference (Nothing in Visual Basic).
-or- The discovery document could not be downloaded and verified successfully. |
Remarks
Unless you specifically need to resolve the individual references of a DiscoveryDocumentReference object, you should invoke the ResolveAll or ResolveOneLevel methods of DiscoveryClientProtocol.
This method resolves all references to discovery documents, XSD schemas, and Service Descriptions in the References property of ClientProtocol and any references found in referring discovery documents.
Example
[Visual Basic] Imports System Imports System.Web.Services.Discovery Imports System.Collections Imports MicroSoft.VisualBasic Public Class DiscoveryDocumentReference_Document_ResolveAll Public Shared Sub Main() Try Dim myUrl As String = "http://localhost/Sample_vb.vsdisco" Dim myProtocol As New DiscoveryClientProtocol() ' Get the discovery document myDiscoveryDocument. Dim myDiscoveryDocument As DiscoveryDocument = myProtocol.Discover(myUrl) ' Get the references of myDiscoveryDocument. Dim myEnumerator As IEnumerator = myDiscoveryDocument.References.GetEnumerator() While myEnumerator.MoveNext() Dim myNewReference As DiscoveryDocumentReference = _ CType(myEnumerator.Current, DiscoveryDocumentReference) ' Set the ClientProtocol of myNewReference. Dim myNewProtocol As DiscoveryClientProtocol = myNewReference.ClientProtocol ' Verify for all the valid references. myNewReference.ResolveAll() ' Get the document of myNewReference. Dim myNewDiscoveryDocument As DiscoveryDocument = myNewReference.Document Dim myNewEnumerator As IEnumerator = _ myNewDiscoveryDocument.References.GetEnumerator() Console.WriteLine("The valid discovery document is : " + ControlChars.NewLine) While myNewEnumerator.MoveNext() ' Display the references of myNewDiscoveryDocument on the console. Console.WriteLine(CType(myNewEnumerator.Current, DiscoveryDocumentReference).Ref) End While End While Catch e As Exception Console.WriteLine("Exception :{0}", e.Message) End Try End Sub 'Main End Class 'DiscoveryDocumentReference_Document_ResolveAll [C#] using System; using System.Web.Services.Discovery; using System.Collections; public class DiscoveryDocumentReference_Document_ResolveAll { public static void Main() { try { string myUrl = "http://localhost/Sample_cs.vsdisco"; DiscoveryClientProtocol myProtocol = new DiscoveryClientProtocol(); // Get the discovery document myDiscoveryDocument. DiscoveryDocument myDiscoveryDocument = myProtocol.Discover(myUrl); // Get the references of myDiscoveryDocument. IEnumerator myEnumerator = myDiscoveryDocument.References.GetEnumerator(); while(myEnumerator.MoveNext()) { DiscoveryDocumentReference myNewReference = (DiscoveryDocumentReference)myEnumerator.Current; // Set the ClientProtocol of myNewReference. DiscoveryClientProtocol myNewProtocol = myNewReference.ClientProtocol; // Verify for all the valid references. myNewReference.ResolveAll(); // Get the document of myNewReference. DiscoveryDocument myNewDiscoveryDocument = myNewReference.Document; IEnumerator myNewEnumerator = myNewDiscoveryDocument.References.GetEnumerator(); Console.WriteLine("The valid discovery document is : \n"); while(myNewEnumerator.MoveNext()) { // Display the references of myNewDiscoveryDocument on the console. Console.WriteLine(((DiscoveryDocumentReference)myNewEnumerator.Current).Ref); } } } catch(Exception e) { Console.WriteLine("Exception :{0}", e.Message); } } } [C++] #using <mscorlib.dll> #using <System.dll> #using <System.Web.Services.dll> using namespace System; using namespace System::Web::Services::Discovery; using namespace System::Collections; int main() { try { String* myUrl = S"http://localhost/Sample_cs.vsdisco"; DiscoveryClientProtocol* myProtocol = new DiscoveryClientProtocol(); // Get the discovery document myDiscoveryDocument. DiscoveryDocument* myDiscoveryDocument = myProtocol->Discover(myUrl); // Get the references of myDiscoveryDocument. IEnumerator* myEnumerator = myDiscoveryDocument->References->GetEnumerator(); while(myEnumerator->MoveNext()) { DiscoveryDocumentReference* myNewReference = dynamic_cast<DiscoveryDocumentReference*>(myEnumerator->Current); // Set the ClientProtocol of myNewReference. DiscoveryClientProtocol* myNewProtocol = myNewReference->ClientProtocol; // Verify for all the valid references. myNewReference->ResolveAll(); // Get the document of myNewReference. DiscoveryDocument* myNewDiscoveryDocument = myNewReference->Document; IEnumerator* myNewEnumerator = myNewDiscoveryDocument->References->GetEnumerator(); Console::WriteLine(S"The valid discovery document is : \n"); while(myNewEnumerator->MoveNext()) { // Display the references of myNewDiscoveryDocument on the console. Console::WriteLine((dynamic_cast<DiscoveryDocumentReference*>(myNewEnumerator->Current))->Ref); } } } catch (Exception* e) { Console::WriteLine(S"Exception : {0}", e->Message); } }
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family
See Also
DiscoveryDocumentReference Class | DiscoveryDocumentReference Members | System.Web.Services.Discovery Namespace | ResolveAll | DiscoveryClientProtocol | ResolveOneLevel