Compartilhar via


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 estiverem 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 WS-Addressing (Endereçamento de Serviço Web). Os pontos de extremidade serializáveis que estão em conformidade com a versão 1.0 e a versão de agosto de 2004 do WS-Addressing são fornecidos, respectivamente, pelas classes e EndpointAddressAugust2004 pelas EndpointAddress10 classes.

Construtores

EndpointAddress(String)

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

EndpointAddress(Uri, AddressHeader[])

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

EndpointAddress(Uri, EndpointIdentity, AddressHeader[])

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

EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection)

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

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

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

Propriedades

AnonymousUri

Obtém uma representação com neutralidade de 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 é NoneUri.

NoneUri

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

Uri

Obtém o URI do ponto de extremidade.

Métodos

ApplyTo(Message)

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

Equals(Object)

Retorna um valor que indica se um objeto especificado é igual 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 para um ponto de extremidade.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ReadFrom(AddressingVersion, XmlDictionaryReader)

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

ReadFrom(AddressingVersion, XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

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

ReadFrom(AddressingVersion, XmlReader)

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

ReadFrom(AddressingVersion, XmlReader, String, String)

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

ReadFrom(XmlDictionaryReader)

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

ReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

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

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 de XML especificado.

WriteTo(AddressingVersion, XmlDictionaryWriter)

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

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 nome local indicados.

WriteTo(AddressingVersion, XmlWriter)

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

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 nome local indicados.

Operadores

Equality(EndpointAddress, EndpointAddress)

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

Inequality(EndpointAddress, EndpointAddress)

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

Aplica-se a