DiscoveryReference Class

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

The base class for discoverable references using XML Web services discovery.

Namespace:   System.Web.Services.Discovery
Assembly:  System.Web.Services (in System.Web.Services.dll)


public abstract class DiscoveryReference

NameDescription
System_CAPS_protmethodDiscoveryReference()

Initializes a new instance of the DiscoveryReference class.

NameDescription
System_CAPS_pubpropertyClientProtocol

Gets or sets the instance of DiscoveryClientProtocol used in a discovery process.

System_CAPS_pubpropertyDefaultFilename

Gets the name of the default file to use when saving the referenced discovery document, XSD schema, or Service Description.

System_CAPS_pubpropertyUrl

Gets or sets the URL of the referenced document.

NameDescription
System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_pubmethodSystem_CAPS_staticFilenameFromUrl(String)

Returns a file name based on the passed URL.

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodReadDocument(Stream)

Reads the passed Stream and returns an instance of the class representing the type of referenced document.

System_CAPS_pubmethodResolve()

Downloads the referenced document at Url to resolve whether the referenced document is valid.

System_CAPS_protmethodResolve(String, Stream)

Resolves whether the referenced document is valid.

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

System_CAPS_pubmethodWriteDocument(Object, Stream)

When overridden in a derived class, writes the document to a Stream.

ContractReference, SchemaReference, and DiscoveryDocumentReference all inherit from DiscoveryReference, and represent the three types of documents discoverable through XML Web services discovery: Service Descriptions, XML Schema Definition (XSD) schemas, and discovery documents, respectively.

using System;
using System.IO;
using System.Web.Services.Discovery;
using System.Net;

class MyDiscoveryDocumentClass
{
   static void Main()
   {
      try {
         DiscoveryDocument myDiscoveryDocument;
         StreamReader myStreamReader = 
             new StreamReader("c:\\Inetpub\\wwwroot\\dataservice.disco");
         FileStream myStream = new FileStream("c:\\MyDiscovery.disco",
             FileMode.OpenOrCreate);
         Console.WriteLine("Demonstrating DiscoveryReference class.");

         // Read discovery file.
         myDiscoveryDocument = DiscoveryDocument.Read(myStreamReader);

         // Create a new instance of the DiscoveryReference class.
         MyDiscoveryReferenceClass myDiscoveryReference;
         myDiscoveryReference =  new MyDiscoveryReferenceClass();

         DiscoveryClientProtocol myDiscoveryClientProtocol = 
             new DiscoveryClientProtocol();
         myDiscoveryClientProtocol.Credentials = 
             CredentialCache.DefaultCredentials;

         // Set the client protocol.
         myDiscoveryReference.ClientProtocol = myDiscoveryClientProtocol;

         // Read the default file name.
         Console.WriteLine("Default file name is: " 
             + myDiscoveryReference.DefaultFilename);

         // Write the document.
         myDiscoveryReference.WriteDocument(myDiscoveryDocument,myStream);

         // Read the document.
         myDiscoveryReference.ReadDocument(myStream);

         // Set the URL. 
         myDiscoveryReference.Url = "http://localhost/dataservice.disco";
         Console.WriteLine("Url is: " + myDiscoveryReference.Url);

         // Resolve the URL.
         myDiscoveryReference.Resolve();

         myStreamReader.Close();
         myStream.Close();
      }
      catch (Exception e) 
      {
         Console.WriteLine("Exception caught! - {0}", e.Message);
      }
   }
}

// Class derived from DiscoveryReference class and overriding it members.
class MyDiscoveryReferenceClass : DiscoveryReference
{
   private string myDocumentUrl;
   public override string DefaultFilename
   {
      get
      {
         return "dataservice.disco";
      }
   }

   public override object ReadDocument(Stream stream)
   {
      return stream;
   }

   public new void Resolve()
   {
      try
      {
         DiscoveryDocument myDiscoveryRefDocument;
         myDiscoveryRefDocument = base.ClientProtocol.Discover(Url);
      }
      catch (Exception e)
      {
         throw(e);
      }
   }

   protected override void Resolve(string contentType, Stream stream) {}

   public override string Url
   {
      get
      {
         return myDocumentUrl;
      }

      set
      {
         myDocumentUrl = value;
      }
   }

   public override void WriteDocument(object document, System.IO.Stream stream)
   {
      DiscoveryDocument myDiscoveryDocument = (DiscoveryDocument)document;
      myDiscoveryDocument.Write(stream);
   }
}

.NET Framework
Available since 1.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: