EndpointAddress Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona una dirección de red única que usa un cliente para comunicarse con un punto de conexión de servicio.
public ref class EndpointAddress
public class EndpointAddress
type EndpointAddress = class
Public Class EndpointAddress
- Herencia
-
EndpointAddress
Ejemplos
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();
}
}
}
Comentarios
Una dirección de punto de conexión identifica de manera única el punto de conexión de un servicio.
La dirección de punto de conexión pertenece al punto de conexión de servicio, que también contiene el enlace, el contrato y comportamientos para el punto de conexión.
La EndpointAddress contiene un URI y propiedades de dirección que incluyen una identidad, elementos WSDL y una colección de encabezados opcionales. Los encabezados opcionales se utilizan para proporcionar información de direccionamiento adicional y más detallada para identificar o interactuar con el punto de conexión. Por ejemplo, se pueden utilizar para indicar qué instancia de un servicio se utilizará para procesar un mensaje entrante de un usuario determinado cuando varias instancias están disponibles.
La dirección de extremo de un servicio puede especificarse de manera imperativa mediante código o de manera declarativa mediante configuración. Normalmente, no resulta muy práctico definir los puntos de conexión en el código ya que los enlaces y las direcciones de un servicio implementado son, por lo general, diferentes de los utilizados durante el desarrollo del servicio. Es más práctico definir puntos de conexión de servicio mediante la configuración.
EndpointAddress no implementa la ISerializable interfaz y, por tanto, no es serializable. Para que un punto de conexión se exponga como parte de un contrato de servicio debe ser serializable y también conforme al protocolo de direccionamiento de servicios Web (WS-Addressing). Las clases EndpointAddress10 y EndpointAddressAugust2004 proporcionan, respectivamente, extremos serializables que cumplen con la versión 1.0 y la versión de agosto de 2004 de WS-Addressing.
Constructores
EndpointAddress(String) |
Inicializa una nueva instancia de la clase EndpointAddress con una cadena URI especificada. |
EndpointAddress(Uri, AddressHeader[]) |
Inicializa una nueva instancia de la clase EndpointAddress con un URI y encabezados especificados. |
EndpointAddress(Uri, EndpointIdentity, AddressHeader[]) |
Inicializa una nueva instancia de la clase EndpointAddress con un URI, identidad y encabezados especificados. |
EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection) |
Inicializa una nueva instancia de la clase EndpointAddress con un URI, identidad y colección de encabezados especificados. |
EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection, XmlDictionaryReader, XmlDictionaryReader) |
Inicializa una nueva instancia de la clase EndpointAddress con un URI, identidad, colección de encabezados, metadatos y lectores de extensiones especificados. |
Propiedades
AnonymousUri |
Obtiene una representación de versión neutra del URI anónimo. |
Headers |
Obtiene la colección de encabezados de dirección para los puntos de conexión que el generador puede crear. |
Identity |
Obtiene la identidad del extremo utilizado para autenticarlo. |
IsAnonymous |
Obtiene un valor que indica si el punto de conexión es anonymous. |
IsNone |
Obtiene un valor que indica si el URI del punto de conexión es el NoneUri. |
NoneUri |
Obtiene un URI de versión neutra utilizado para la dirección de un punto de conexión al que no se debe enviar un mensaje. |
Uri |
Obtiene el URI para el punto de conexión. |
Métodos
ApplyTo(Message) |
Asigna el URI y las propiedades de la dirección del punto de conexión a los valores de los encabezados de un mensaje especificado. |
Equals(Object) |
Devuelve un valor que indica si un objeto especificado es equivalente a la dirección del punto de conexión actual. |
GetHashCode() |
Proporciona un código hash único para la dirección del extremo actual. |
GetReaderAtExtensions() |
Obtiene el lector de diccionarios XML que proporciona el acceso a las extensiones. |
GetReaderAtMetadata() |
Obtiene el lector de diccionarios XML que proporciona acceso a los metadatos de un extremo. |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ReadFrom(AddressingVersion, XmlDictionaryReader) |
Lee una dirección de punto de conexión para una versión de dirección especificada desde un lector de diccionarios XML especificado. |
ReadFrom(AddressingVersion, XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString) |
Lee una dirección de punto de conexión de una versión de dirección especificada con un nombre completo especificado desde un lector de diccionarios XML especificado. |
ReadFrom(AddressingVersion, XmlReader) |
Lee una dirección de extremo de una versión de dirección especificada desde un lector XML especificado. |
ReadFrom(AddressingVersion, XmlReader, String, String) |
Lee una dirección de punto de conexión de una versión de dirección especificada con un nombre completo especificado desde un lector XML especificado. |
ReadFrom(XmlDictionaryReader) |
Lee una dirección del punto de conexión desde un lector de diccionario XML especificado. |
ReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString) |
Lee una dirección del punto de conexión con un nombre completo especificado desde un lector de diccionario de XML especificado. |
ToString() |
Devuelve una representación de cadena canónica del URI que se contiene en la dirección del punto de conexión. |
WriteContentsTo(AddressingVersion, XmlDictionaryWriter) |
Guarda todos los nodos secundarios del nodo en el sistema de escritura de diccionarios XML especificado. |
WriteContentsTo(AddressingVersion, XmlWriter) |
Guarda todos los nodos secundarios del nodo en el sistema de escritura XML especificado. |
WriteTo(AddressingVersion, XmlDictionaryWriter) |
Guarda la dirección del extremo actual de una versión especificada en un sistema de escritura de diccionarios XML especificado. |
WriteTo(AddressingVersion, XmlDictionaryWriter, XmlDictionaryString, XmlDictionaryString) |
Guarda la dirección del punto de conexión actual de una versión especificada en un sistema de escritura de diccionarios XML con un espacio de nombres y nombre local especificados. |
WriteTo(AddressingVersion, XmlWriter) |
Guarda la dirección del punto de conexión actual de una versión especificada en un sistema de escritura XML especificado. |
WriteTo(AddressingVersion, XmlWriter, String, String) |
Guarda la dirección del punto de conexión actual de una versión especificada en un sistema de escritura XML con un espacio de nombres y nombre local especificados. |
Operadores
Equality(EndpointAddress, EndpointAddress) |
Devuelve un valor que indica si las direcciones de puntos de conexión especificadas no son equivalentes. |
Inequality(EndpointAddress, EndpointAddress) |
Devuelve un valor que indica si las direcciones de puntos de conexión especificadas no son equivalentes. |