EndpointAddress Class
TOC
Collapse the table of content
Expand the table of content

EndpointAddress Class

 

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

Namespace:   System.ServiceModel
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

System.Object
  System.ServiceModel.EndpointAddress

public class EndpointAddress

NameDescription
System_CAPS_pubmethodEndpointAddress(String)

Initializes a new instance of the EndpointAddress class with a specified URI string.

System_CAPS_pubmethodEndpointAddress(Uri, AddressHeader[])

Initializes a new instance of the EndpointAddress class with a specified URI and headers.

System_CAPS_pubmethodEndpointAddress(Uri, EndpointIdentity, AddressHeader[])

Initializes a new instance of the EndpointAddress class with a specified URI, identity, and headers.

System_CAPS_pubmethodEndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection)

Initializes a new instance of the EndpointAddress class with a specified URI, identity, and header collection.

System_CAPS_pubmethodEndpointAddress(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.

NameDescription
System_CAPS_pubpropertySystem_CAPS_staticAnonymousUri

Gets a version-neutral representation of the anonymous URI.

System_CAPS_pubpropertyHeaders

Gets the collection of address headers for the endpoints that the builder can create.

System_CAPS_pubpropertyIdentity

Gets the identity for the endpoint used to authenticate it.

System_CAPS_pubpropertyIsAnonymous

Gets a value that indicates whether the endpoint is anonymous.

System_CAPS_pubpropertyIsNone

Gets a value that indicates whether the URI for the endpoint is the NoneUri.

System_CAPS_pubpropertySystem_CAPS_staticNoneUri

Gets a version-neutral URI used for the address of an endpoint to which a message must not be sent.

System_CAPS_pubpropertyUri

Gets the URI for the endpoint.

NameDescription
System_CAPS_pubmethodApplyTo(Message)

Assigns the URI and properties of the endpoint address to the values of the headers of a specified message.

System_CAPS_pubmethodEquals(Object)

Returns a value that indicates whether a specified object is equivalent to the current endpoint address.(Overrides Object.Equals(Object).)

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()

Provides a unique hash code for the current endpoint address. (Overrides Object.GetHashCode().)

System_CAPS_pubmethodGetReaderAtExtensions()

Gets the XML dictionary reader that provides access to the extensions.

System_CAPS_pubmethodGetReaderAtMetadata()

Gets the XML dictionary reader that provides access to the metadata for an endpoint.

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_pubmethodSystem_CAPS_staticReadFrom(AddressingVersion, XmlDictionaryReader)

Reads an endpoint address for a specified address version from a specified XML dictionary reader.

System_CAPS_pubmethodSystem_CAPS_staticReadFrom(AddressingVersion, XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

Reads an endpoint address for a specified address version with a specified qualified name from a specified XML dictionary reader.

System_CAPS_pubmethodSystem_CAPS_staticReadFrom(AddressingVersion, XmlReader)

Reads an endpoint address for a specified address version from a specified XML reader.

System_CAPS_pubmethodSystem_CAPS_staticReadFrom(AddressingVersion, XmlReader, String, String)

Reads an endpoint address for a specified address version with a specified qualified name from a specified XML reader.

System_CAPS_pubmethodSystem_CAPS_staticReadFrom(XmlDictionaryReader)

Reads an endpoint address from a specified XML dictionary reader.

System_CAPS_pubmethodSystem_CAPS_staticReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

Reads an endpoint address with a specified qualified name from a specified XML dictionary reader.

System_CAPS_pubmethodToString()

Returns a canonical string representation of the URI that is contained in the endpoint address.(Overrides Object.ToString().)

System_CAPS_pubmethodWriteContentsTo(AddressingVersion, XmlDictionaryWriter)

Saves all the child nodes of the node to the XML dictionary writer specified.

System_CAPS_pubmethodWriteContentsTo(AddressingVersion, XmlWriter)

Saves all the child nodes of the node to the XML writer specified.

System_CAPS_pubmethodWriteTo(AddressingVersion, XmlDictionaryWriter)

Saves the current endpoint address of a specified version to a specified XML dictionary writer.

System_CAPS_pubmethodWriteTo(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.

System_CAPS_pubmethodWriteTo(AddressingVersion, XmlWriter)

Saves the current endpoint address of a specified version to a specified XML writer.

System_CAPS_pubmethodWriteTo(AddressingVersion, XmlWriter, String, String)

Saves the current endpoint address of a specified version to an XML writer with a specified namespace and local name.

NameDescription
System_CAPS_puboperatorSystem_CAPS_staticEquality(EndpointAddress, EndpointAddress)

Returns a value that indicates whether specified endpoint addresses are not equivalent.

System_CAPS_puboperatorSystem_CAPS_staticInequality(EndpointAddress, EndpointAddress)

Returns a value that indicates whether specified endpoint addresses are not equivalent.

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();

        }
    }
  }

Universal Windows Platform
Available since 4.5
.NET Framework
Available since 3.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0

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:
© 2016 Microsoft