EndpointAddress Classe

Definição

Fornece um endereço de rede exclusivo que um cliente usa para se comunicar com um ponto de extremidade 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();
        }
    }
  }

Comentários

Um endereço de ponto de extremidade identifica exclusivamente o ponto de extremidade de um serviço.

O endereço do ponto de extremidade pertence ao ponto de extremidade de serviço, que também contém a associação, o contrato e os comportamentos do ponto de extremidade.

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ções de endereçamento adicionais e mais detalhadas para identificar ou interagir com o ponto de extremidade. Por exemplo, eles podem ser usados para indicar qual instância de um serviço deve ser usada para processar uma mensagem de entrada de um usuário específico quando várias instâncias estão disponíveis.

O endereço do ponto de extremidade de um serviço pode ser especificado de forma imperativa usando código ou declarativamente por meio da configuração. A definição de pontos de extremidade no código geralmente não é prática porque as associações e os endereços de um serviço implantado normalmente são diferentes daqueles usados enquanto o serviço está sendo desenvolvido. É mais prático definir pontos de extremidade de serviço usando a configuração.

EndpointAddress não implementa a ISerializable interface e, portanto, não é serializável. Para que um ponto de extremidade seja exposto como parte de um contrato de serviço, ele deve ser serializável e também deve estar em conformidade com o protocolo de Endereçamento de Serviço Web (WS-Addressing). Pontos de extremidade serializáveis compatíveis com a versão 1.0 e a versão de agosto de 2004 de WS-Addressing são fornecidos, respectivamente, pelas classes e EndpointAddress10 pelas EndpointAddressAugust2004 classes.

Construtores

Nome Description
EndpointAddress(String)

Inicializa uma nova instância da EndpointAddress classe com uma cadeia de caracteres 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, identidade, coleção de cabeçalho e leitores de metadados e extensão especificados.

EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection)

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

Propriedades

Nome Description
AnonymousUri

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

Headers

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

Identity

Obtém a identidade do ponto de extremidade usado para autenticá-la.

IsAnonymous

Obtém um valor que indica se o ponto de extremidade é anônimo.

IsNone

Obtém um valor que indica se o URI do ponto de extremidade é o NoneUri.

NoneUri

Obtém um URI neutro de versão usado para o endereço de um ponto de extremidade para o qual uma mensagem não deve ser enviada.

Uri

Obtém o URI do ponto de extremidade.

Métodos

Nome Description
ApplyTo(Message)

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

Equals(Object)

Retorna um valor que indica se um objeto especificado é equivalente ao endereço do ponto de extremidade atual.

GetHashCode()

Fornece um código hash exclusivo para o endereço do ponto de extremidade atual.

GetReaderAtExtensions()

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

GetReaderAtMetadata()

Obtém o leitor de dicionário XML que fornece acesso aos metadados de um ponto de extremidade.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

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

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

ReadFrom(AddressingVersion, XmlDictionaryReader)

Lê um endereço de ponto de extremidade para uma versão de endereço especificada de um leitor de dicionário XML especificado.

ReadFrom(AddressingVersion, XmlReader, String, String)

Lê um endereço de ponto de extremidade para uma versão de endereço especificada com um nome qualificado especificado de um leitor XML especificado.

ReadFrom(AddressingVersion, XmlReader)

Lê um endereço de ponto de extremidade para uma versão de endereço especificada de um leitor XML especificado.

ReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

Lê um endereço de ponto de extremidade com um nome qualificado especificado de um leitor de dicionário XML especificado.

ReadFrom(XmlDictionaryReader)

Lê um endereço de ponto de extremidade de um leitor de dicionário XML especificado.

ToString()

Retorna uma representação de cadeia de caracteres canônica do URI contido no endereço do ponto de extremidade.

WriteContentsTo(AddressingVersion, XmlDictionaryWriter)

Salva todos os nós filho do nó no gravador de dicionário XML especificado.

WriteContentsTo(AddressingVersion, XmlWriter)

Salva todos os nós filho do nó no gravador XML especificado.

WriteTo(AddressingVersion, XmlDictionaryWriter, XmlDictionaryString, XmlDictionaryString)

Salva o endereço do ponto de extremidade atual de uma versão especificada em um gravador de dicionário XML com um namespace e um nome local especificados.

WriteTo(AddressingVersion, XmlDictionaryWriter)

Salva o endereço do ponto de extremidade atual de uma versão especificada em um gravador de dicionário XML especificado.

WriteTo(AddressingVersion, XmlWriter, String, String)

Salva o endereço do ponto de extremidade atual de uma versão especificada em um gravador XML com um namespace e um nome local especificados.

WriteTo(AddressingVersion, XmlWriter)

Salva o endereço do ponto de extremidade atual de uma versão especificada em um gravador XML especificado.

Operadores

Nome Description
Equality(EndpointAddress, EndpointAddress)

Retorna um valor que indica se os endereços de ponto de extremidade especificados não são equivalentes.

Inequality(EndpointAddress, EndpointAddress)

Retorna um valor que indica se os endereços de ponto de extremidade especificados não são equivalentes.

Aplica-se a