EndpointAddress Classe

Definição

Fornece um endereço de rede único que o cliente utiliza para comunicar com um endpoint de serviço.

public ref class EndpointAddress
public class EndpointAddress
type EndpointAddress = class
Public Class EndpointAddress
Herança
EndpointAddress

Exemplos

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

Observações

Um endereço de endpoint identifica de forma única o endpoint de um serviço.

O endereço do endpoint pertence ao endpoint do serviço, que também contém a vinculação, contrato e comportamentos do endpoint.

Contém EndpointAddress um URI e propriedades de endereço que incluem uma identidade, elementos WSDL e uma coleção de cabeçalhos opcionais. Os cabeçalhos opcionais são usados para fornecer informação adicional e mais detalhada de endereçamento para identificar ou interagir com o endpoint. Por exemplo, podem ser usadas para indicar qual instância de um serviço deve ser usada para processar uma mensagem recebida de um determinado utilizador quando existem múltiplas instâncias disponíveis.

O endereço do ponto de extremidade de um serviço pode ser especificado imperativamente usando código ou declarativamente por meio da configuração. Definir pontos de extremidade no código geralmente não é prático porque as ligações e endereços para um serviço implantado geralmente são diferentes daqueles usados enquanto o serviço está sendo desenvolvido. É mais prático definir endpoints de serviço usando configuração.

EndpointAddress não implementa a ISerializable interface e, por isso, não é serializável. Para que um endpoint seja exposto como parte de um contrato de serviço, deve ser serializável e também deve estar em conformidade com o protocolo Web Service Addressing (WS-Addressing). Endpoints serializáveis que cumprem a versão 1.0 e a versão de agosto de 2004 da WS-Addressing são, respetivamente, fornecidos pelas EndpointAddress10 classes e.EndpointAddressAugust2004

Construtores

Name Description
EndpointAddress(String)

Inicializa uma nova instância da EndpointAddress classe com uma cadeia de URI especificada.

EndpointAddress(Uri, AddressHeader[])

Inicializa uma nova instância da EndpointAddress classe com um URI e cabeçalhos especificados.

EndpointAddress(Uri, EndpointIdentity, AddressHeader[])

Inicializa uma nova instância da EndpointAddress classe com um URI, identidade e cabeçalhos especificados.

EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection, XmlDictionaryReader, XmlDictionaryReader)

Inicializa uma nova instância da EndpointAddress classe com um URI especificado, identidade, coleção de cabeçalhos e leitores de metadados e extensões.

EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection)

Inicializa uma nova instância da EndpointAddress classe com um URI, identidade e coleção de cabeçalhos especificados.

Propriedades

Name Description
AnonymousUri

Obtém uma representação neutra em relação à versão do URI anónimo.

Headers

Obtém a coleção de cabeçalhos de endereço para os endpoints que o construtor pode criar.

Identity

Obtém a identidade do endpoint usado para autenticar.

IsAnonymous

Recebe um valor que indica se o endpoint é anónimo.

IsNone

Obtém um valor que indica se o URI do endpoint é o NoneUri.

NoneUri

Obtém um URI neutro em relação à versão usado para o endereço de um endpoint para o qual uma mensagem não deve ser enviada.

Uri

Obtém o URI do endpoint.

Métodos

Name Description
ApplyTo(Message)

Atribui o URI e as propriedades do endereço endpoint aos valores dos cabeçalhos de uma mensagem especificada.

Equals(Object)

Devolve um valor que indica se um objeto especificado é equivalente ao endereço atual do endpoint.

GetHashCode()

Fornece um código hash único para o endereço atual do endpoint.

GetReaderAtExtensions()

Obtém o leitor de dicionário XML que dá acesso às extensões.

GetReaderAtMetadata()

Obtém o leitor de dicionário XML que dá acesso aos metadados de um endpoint.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ReadFrom(AddressingVersion, XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

Lê um endereço de endpoint para uma versão de endereço especificada com um nome qualificado especificado a partir de um leitor de dicionário XML especificado.

ReadFrom(AddressingVersion, XmlDictionaryReader)

Lê um endereço de endpoint para uma versão de endereço especificada a partir de um leitor de dicionário XML especificado.

ReadFrom(AddressingVersion, XmlReader, String, String)

Lê um endereço de endpoint para uma versão de endereço especificada com um nome qualificado especificado a partir de um leitor XML especificado.

ReadFrom(AddressingVersion, XmlReader)

Lê um endereço de endpoint para uma versão de endereço especificada a partir de um leitor XML especificado.

ReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

Lê um endereço de endpoint com um nome qualificado especificado a partir de um leitor de dicionário XML especificado.

ReadFrom(XmlDictionaryReader)

Lê um endereço de endpoint a partir de um leitor de dicionário XML especificado.

ToString()

Devolve uma representação canónica de strings do URI contida no endereço do endpoint.

WriteContentsTo(AddressingVersion, XmlDictionaryWriter)

Guarda todos os nós filhos do nó no escritor do dicionário XML especificado.

WriteContentsTo(AddressingVersion, XmlWriter)

Guarda todos os nós filhos do nó no escritor XML especificado.

WriteTo(AddressingVersion, XmlDictionaryWriter, XmlDictionaryString, XmlDictionaryString)

Guarda o endereço atual do endpoint de uma versão especificada para um escritor de dicionário XML com um namespace e nome local especificados.

WriteTo(AddressingVersion, XmlDictionaryWriter)

Guarda o endereço atual do endpoint de uma versão especificada para um escritor de dicionário XML especificado.

WriteTo(AddressingVersion, XmlWriter, String, String)

Guarda o endereço atual do endpoint de uma versão especificada para um escritor XML com um namespace e nome local especificados.

WriteTo(AddressingVersion, XmlWriter)

Guarda o endereço atual do endpoint de uma versão especificada para um escritor XML especificado.

Operadores

Name Description
Equality(EndpointAddress, EndpointAddress)

Devolve um valor que indica se os endereços de endpoint especificados não são equivalentes.

Inequality(EndpointAddress, EndpointAddress)

Devolve um valor que indica se os endereços de endpoint especificados não são equivalentes.

Aplica-se a