Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

DiscoveryReference Class

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

The DiscoveryReference type exposes the following members.

Protected methodDiscoveryReferenceInitializes a new instance of the DiscoveryReference class.

Public propertyClientProtocolGets or sets the instance of DiscoveryClientProtocol used in a discovery process.
Public propertyDefaultFilenameGets the name of the default file to use when saving the referenced discovery document, XSD schema, or Service Description.
Public propertyUrlGets or sets the URL of the referenced document.

Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Public methodStatic memberFilenameFromUrlReturns a file name based on the passed URL.
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodReadDocumentReads the passed Stream and returns an instance of the class representing the type of referenced document.
Public methodResolve()Downloads the referenced document at Url to resolve whether the referenced document is valid.
Protected methodResolve(String, Stream)Resolves whether the referenced document is valid.
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Public methodWriteDocumentWhen 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",
         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 = 

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

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

         // Write the document.

         // Read the document.

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

         // Resolve the URL.

      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
         return "dataservice.disco";

   public override object ReadDocument(Stream stream)
      return stream;

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

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

   public override string Url
         return myDocumentUrl;

         myDocumentUrl = value;

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

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

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