EndpointAddress Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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. |