EndpointAddress Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет уникальный сетевой адрес, используемый клиентом для взаимодействия с конечной точкой службы.
public ref class EndpointAddress
public class EndpointAddress
type EndpointAddress = class
Public Class EndpointAddress
- Наследование
-
EndpointAddress
Примеры
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();
}
}
}
Комментарии
Адрес конечной точки однозначно идентифицирует конечную точку службы.
Адрес конечной точки относится к конечной точке службы, которая также содержит привязку, контракт и поведения конечной точки.
Класс EndpointAddress содержит универсальный код ресурса (URI) и свойства адреса, включающие удостоверение, элементы WSDL и коллекцию необязательных заголовков. Необязательные заголовки используются для предоставления дополнительной и более подробной адресной информации для идентификации конечной точки или взаимодействия с ней. Например, они могут применяться для указания, какой экземпляр службы должен использоваться для обработки входящего сообщения от конкретного пользователя при доступности нескольких экземпляров.
Адрес конечной точки службы можно задать императивно с помощью кода или декларативно с помощью конфигурации. Как правило, определять конечные точки в коде непрактично, поскольку привязки и адреса для развернутой службы чаще всего отличаются от привязок и адресов, используемых в процессе разработки службы. Более удобно определять конечные точки службы с помощью конфигурации.
EndpointAddress не реализует ISerializable интерфейс и поэтому не сериализуется. Чтобы конечная точка представлялась в качестве части контракта службы, она должна быть сериализуемой и совместимой с протоколом адресации веб-служб (WS-Addressing). Сериализуемые конечные точки, совместимые с протоколом WS-Addressing версии 1.0 и версии, вышедшей в августе 2004 г., предоставляются классами EndpointAddress10 и EndpointAddressAugust2004, соответственно.
Конструкторы
EndpointAddress(String) |
Инициализирует новый экземпляр класса EndpointAddress с указанной строкой универсального кода ресурса (URI). |
EndpointAddress(Uri, AddressHeader[]) |
Инициализирует новый экземпляр класса EndpointAddress с указанными универсальным кодом ресурса (URI) и заголовками. |
EndpointAddress(Uri, EndpointIdentity, AddressHeader[]) |
Инициализирует новый экземпляр класса EndpointAddress с указанными универсальным кодом ресурса (URI), удостоверением и заголовками. |
EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection) |
Инициализирует новый экземпляр класса EndpointAddress с указанными универсальным кодом ресурса (URI), удостоверением и коллекцией заголовков. |
EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection, XmlDictionaryReader, XmlDictionaryReader) |
Инициализирует новый экземпляр класса EndpointAddress с указанными универсальным кодом ресурса (URI), удостоверением, коллекцией заголовков и средствами чтения метаданных и расширений. |
Свойства
AnonymousUri |
Возвращает не зависящее от версии представление анонимного универсального кода ресурса (URI). |
Headers |
Возвращает коллекцию заголовков адресов для конечных точек, которые может создать построитель. |
Identity |
Возвращает удостоверение конечной точки, используемое для проверки ее подлинности. |
IsAnonymous |
Возвращает значение, указывающее, является ли конечная точка анонимной. |
IsNone |
Возвращает значение, указывающее, имеет ли универсальный код ресурса (URI) конечной точки значение NoneUri. |
NoneUri |
Возвращает не зависящий от версии универсальный код ресурса (URI), используемый для адреса конечной точки, по которому сообщение не должно отправляться. |
Uri |
Возвращает универсальный код ресурса (URI) для конечной точки. |
Методы
ApplyTo(Message) |
Присваивает универсальный код ресурса (URI) и свойства адреса конечной точки значениям заголовков указанного сообщения. |
Equals(Object) |
Возвращает значение, указывающее, эквивалентен ли указанный объект текущему адресу конечной точки. |
GetHashCode() |
Предоставляет уникальный хэш-код для текущего адреса конечной точки. |
GetReaderAtExtensions() |
Возвращает средство чтения словаря XML, обеспечивающее доступ к расширениям. |
GetReaderAtMetadata() |
Возвращает средство чтения словаря XML, обеспечивающее доступ к метаданным конечной точки. |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ReadFrom(AddressingVersion, XmlDictionaryReader) |
Осуществляет чтение адреса конечной точки для заданной версии адреса из указанного средства чтения словаря XML. |
ReadFrom(AddressingVersion, XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString) |
Осуществляет чтение адреса конечной точки для заданной версии адреса с указанным полным именем из указанного средства чтения словаря XML. |
ReadFrom(AddressingVersion, XmlReader) |
Осуществляет чтение адреса конечной точки для заданной версии адреса из указанного средства чтения XML. |
ReadFrom(AddressingVersion, XmlReader, String, String) |
Осуществляет чтение адреса конечной точки для заданной версии адреса с указанным полным именем из указанного средства чтения XML. |
ReadFrom(XmlDictionaryReader) |
Осуществляет чтение адреса конечной точки из указанного средства чтения словаря XML. |
ReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString) |
Осуществляет чтение адреса конечной точки с заданным полным именем из указанного средства чтения словаря XML. |
ToString() |
Возвращает каноническое представление строки универсального кода ресурса (URI), содержащегося в адресе конечной точки. |
WriteContentsTo(AddressingVersion, XmlDictionaryWriter) |
Сохраняет все дочерние узлы определенного узла в указанном модуле записи словаря XML. |
WriteContentsTo(AddressingVersion, XmlWriter) |
Сохраняет все дочерние узлы определенного узла в указанном средстве записи XML. |
WriteTo(AddressingVersion, XmlDictionaryWriter) |
Сохраняет текущий адрес конечной точки заданной версии в указанном модуле записи словаря XML. |
WriteTo(AddressingVersion, XmlDictionaryWriter, XmlDictionaryString, XmlDictionaryString) |
Сохраняет текущий адрес конечной точки заданной версии в средстве записи словаря XML с указанными пространством имен и локальным именем. |
WriteTo(AddressingVersion, XmlWriter) |
Сохраняет текущий адрес конечной точки заданной версии в указанном модуле записи XML. |
WriteTo(AddressingVersion, XmlWriter, String, String) |
Сохраняет текущий адрес конечной точки заданной версии в средстве записи XML с указанными пространством имен и локальным именем. |
Операторы
Equality(EndpointAddress, EndpointAddress) |
Возвращает значение, указывающее, являются ли заданные адреса конечных точек неравнозначными. |
Inequality(EndpointAddress, EndpointAddress) |
Возвращает значение, указывающее, являются ли заданные адреса конечных точек неравнозначными. |