EndpointAddress Class

Provides a unique network address that a client uses to communicate with a service endpoint.

System.Object
  System.ServiceModel.EndpointAddress

Namespace:  System.ServiceModel
Assemblies:   System.ServiceModel.Primitives (in System.ServiceModel.Primitives.dll)
  System.ServiceModel (in System.ServiceModel.dll)

public class EndpointAddress

The EndpointAddress type exposes the following members.

  NameDescription
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsEndpointAddress(String)Initializes a new instance of the EndpointAddress class with a specified URI string.
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsEndpointAddress(Uri, AddressHeader[])Initializes a new instance of the EndpointAddress class with a specified URI and headers.
Public methodSupported in .NET for Windows Store appsEndpointAddress(Uri, EndpointIdentity, AddressHeader[])Initializes a new instance of the EndpointAddress class with a specified URI, identity, and headers.
Public methodEndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection)Initializes a new instance of the EndpointAddress class with a specified URI, identity, and header collection.
Public methodEndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection, XmlDictionaryReader, XmlDictionaryReader)Initializes a new instance of the EndpointAddress class with a specified URI, identity, header collection, and metadata and extension readers.
Top

  NameDescription
Public propertyStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsAnonymousUriGets a version-neutral representation of the anonymous URI.
Public propertySupported by Portable Class LibrarySupported in .NET for Windows Store appsHeadersGets the collection of address headers for the endpoints that the builder can create.
Public propertySupported in .NET for Windows Store appsIdentityGets the identity for the endpoint used to authenticate it.
Public propertySupported by Portable Class LibrarySupported in .NET for Windows Store appsIsAnonymousGets a value that indicates whether the endpoint is anonymous.
Public propertySupported by Portable Class LibrarySupported in .NET for Windows Store appsIsNoneGets a value that indicates whether the URI for the endpoint is the NoneUri.
Public propertyStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsNoneUriGets a version-neutral URI used for the address of an endpoint to which a message must not be sent.
Public propertySupported by Portable Class LibrarySupported in .NET for Windows Store appsUriGets the URI for the endpoint.
Top

  NameDescription
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsApplyToAssigns the URI and properties of the endpoint address to the values of the headers of a specified message.
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsEqualsReturns a value that indicates whether a specified object is equivalent to the current endpoint address. (Overrides Object.Equals(Object).)
Protected methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsGetHashCodeProvides a unique hash code for the current endpoint address. (Overrides Object.GetHashCode().)
Public methodGetReaderAtExtensionsGets the XML dictionary reader that provides access to the extensions.
Public methodGetReaderAtMetadataGets the XML dictionary reader that provides access to the metadata for an endpoint.
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodStatic memberReadFrom(XmlDictionaryReader)Reads an endpoint address from a specified XML dictionary reader.
Public methodStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsReadFrom(AddressingVersion, XmlDictionaryReader)Reads an endpoint address for a specified address version from a specified XML dictionary reader.
Public methodStatic memberReadFrom(AddressingVersion, XmlReader)Reads an endpoint address for a specified address version from a specified XML reader.
Public methodStatic memberReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)Reads an endpoint address with a specified qualified name from a specified XML dictionary reader.
Public methodStatic memberReadFrom(AddressingVersion, XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)Reads an endpoint address for a specified address version with a specified qualified name from a specified XML dictionary reader.
Public methodStatic memberReadFrom(AddressingVersion, XmlReader, String, String)Reads an endpoint address for a specified address version with a specified qualified name from a specified XML reader.
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsToStringReturns a canonical string representation of the URI that is contained in the endpoint address. (Overrides Object.ToString().)
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsWriteContentsTo(AddressingVersion, XmlDictionaryWriter)Saves all the child nodes of the node to the XML dictionary writer specified.
Public methodWriteContentsTo(AddressingVersion, XmlWriter)Saves all the child nodes of the node to the XML writer specified.
Public methodWriteTo(AddressingVersion, XmlDictionaryWriter)Saves the current endpoint address of a specified version to a specified XML dictionary writer.
Public methodWriteTo(AddressingVersion, XmlWriter)Saves the current endpoint address of a specified version to a specified XML writer.
Public methodWriteTo(AddressingVersion, XmlDictionaryWriter, XmlDictionaryString, XmlDictionaryString)Saves the current endpoint address of a specified version to an XML dictionary writer with a specified namespace and local name.
Public methodWriteTo(AddressingVersion, XmlWriter, String, String)Saves the current endpoint address of a specified version to an XML writer with a specified namespace and local name.
Top

  NameDescription
Public operatorStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsEqualityReturns a value that indicates whether specified endpoint addresses are not equivalent.
Public operatorStatic memberSupported by Portable Class LibrarySupported in .NET for Windows Store appsInequalityReturns a value that indicates whether specified endpoint addresses are not equivalent.
Top

An endpoint address uniquely identifies the endpoint for a service.

The endpoint address belongs to the service endpoint, which also contains the binding, contract and behaviors for the endpoint.

The EndpointAddress contains a URI and address properties that include an identity, WSDL elements, and a collection of optional headers. The optional headers are used to provide additional, more detailed addressing information to identify or interact with the endpoint. For example, they can be used to indicate which instance of a service is to be used to process an incoming message from a particular user when multiple instances are available.

The endpoint address for a service can be specified either imperatively using code or declaratively through configuration. Defining endpoints in code is usually not practical because the bindings and addresses for a deployed service are typically different from those used while the service is being developed. It is more practical to define service endpoints using configuration .

EndpointAddress does not implement the ISerializable interface and so is not serializable. For an endpoint to be exposed as part of a service contract it must be serializable and it must also be compliant with the Web Service Addressing (WS-Addressing) protocol. Serializable endpoints that are compliant with version 1.0 and the August 2004 version of WS-Addressing are provided, respectively, by the EndpointAddress10 and EndpointAddressAugust2004 classes.

using System;
using System.Configuration;
using System.Collections.Generic;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;

using System.Text;

namespace Microsoft.WCF.Documentation
{
  class HostApplication
  {

    static void Main()
    {
      HostApplication app = new HostApplication();
      app.Run();
    }

    private void Run()
    {

            // Get base address from app settings in configuration
            Uri baseAddress = new Uri(ConfigurationManager.AppSettings["baseAddress"]);

            //Create new address headers for special services and add them to an array
            AddressHeader addressHeader1 = AddressHeader.CreateAddressHeader(
                "specialservice1", "http://localhost:8000/service", 1);
            AddressHeader addressHeader2 = AddressHeader.CreateAddressHeader(
                "specialservice2", "http://localhost:8000/service", 2);

            // Enumerate address headers and their properties from the array.
            AddressHeader[] addressHeaders = new AddressHeader[2] { addressHeader1, addressHeader2 };
            foreach (AddressHeader addressHeader in addressHeaders)
            {
                Console.WriteLine("AddressHeader - namespace:\t\t{0}", addressHeader.Namespace);
                Console.WriteLine("              - name:\t\t\t{0}", addressHeader.Name);
                Console.WriteLine("              - value:\t\t\t{0}", addressHeader.GetValue<int>());
                Console.WriteLine("              - type:\t\t\t{0}", addressHeader.GetType());
                Console.WriteLine("              - hashcode:\t\t{0}", addressHeader.GetHashCode());
                Console.WriteLine("              - equals addressHeader1:\t{0}", addressHeader.Equals(addressHeader1));
             //   Console.WriteLine("              - Is SOAP1.1 supported:\t{0}", addressHeader.ToMessageHeader().IsMessageVersionSupported(MessageVersion.WSAddressingSoap10));
                Console.WriteLine();
            }
            Console.WriteLine();

            //Add the array of address headers to an endpoint address
            EndpointAddress endpointAddress = new EndpointAddress(
                        new Uri("http://localhost:8003/servicemodelsamples/service"), addressHeaders);

            //Create a "special" service endpoint that uses the endpointAddress.
            string WSHttpBindingName = "Binding1";
            ServiceEndpoint specialServiceEndpoint = new ServiceEndpoint(
                ContractDescription.GetContract(typeof(CalculatorService)), new WSHttpBinding(WSHttpBindingName), endpointAddress
                );

            // Create a ServiceHost for the CalculatorService type that uses the base address.
            ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress);

            //Add the specialServiceEndpoint to the serviceHost.
            serviceHost.Description.Endpoints.Add(specialServiceEndpoint);

            // Enumerate the service endpoints and some of their properties from the serviceHost.
            Console.WriteLine("Service endpoints:");
            ServiceDescription desc = serviceHost.Description;
            foreach (ServiceEndpoint endpoint in desc.Endpoints)
            {
                Console.WriteLine("Endpoint - address:  {0}", endpoint.Address);
                Console.WriteLine("         - binding name:\t\t{0}", endpoint.Binding.Name);
                // Console.WriteLine("         - binding name:\t\t{0}", endpoint.);
                Console.WriteLine("         - contract name:\t\t{0}", endpoint.Contract.Name);
                Console.WriteLine("         - contains addressHeader1:\t{0}", endpoint.Address.Headers.Contains(addressHeader1));
                Console.WriteLine("         - count of address headers:\t{0}", endpoint.Address.Headers.Count);
                Console.WriteLine();
            }

            Console.WriteLine();

            // Open the ServiceHostBase to create listeners and start listening for messages.
            serviceHost.Open();

            // The service can now be accessed.
            Console.WriteLine("The service is ready.");
            Console.WriteLine("Press <ENTER> to terminate service.");
            Console.WriteLine();
            Console.ReadLine();

            // Close the ServiceHostBase to shutdown the service.
            serviceHost.Close();

        }
    }
  }

.NET Framework

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

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

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