EndpointAddress Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Udostępnia unikatowy adres sieciowy używany przez klienta do komunikowania się z punktem końcowym usługi.
public ref class EndpointAddress
public class EndpointAddress
type EndpointAddress = class
Public Class EndpointAddress
- Dziedziczenie
-
EndpointAddress
Przykłady
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();
}
}
}
Uwagi
Adres punktu końcowego jednoznacznie identyfikuje punkt końcowy dla usługi.
Adres punktu końcowego należy do punktu końcowego usługi, który zawiera również powiązania, kontrakt i zachowania punktu końcowego.
EndpointAddress zawiera właściwości identyfikatora URI i adresu, które obejmują tożsamość, elementy WSDL i kolekcję opcjonalnych nagłówków. Opcjonalne nagłówki służą do dostarczania dodatkowych, bardziej szczegółowych informacji adresowania w celu identyfikowania punktu końcowego lub interakcji z nim. Na przykład można ich użyć do wskazania, które wystąpienie usługi ma być używane do przetwarzania komunikatu przychodzącego od określonego użytkownika, gdy dostępnych jest wiele wystąpień.
Adres punktu końcowego dla usługi można określić w sposób imperatywny przy użyciu kodu lub deklaratywnego za pośrednictwem konfiguracji. Definiowanie punktów końcowych w kodzie zwykle nie jest praktyczne, ponieważ powiązania i adresy wdrożonej usługi zwykle różnią się od tych używanych podczas opracowywania usługi. Bardziej praktyczne jest definiowanie punktów końcowych usługi przy użyciu konfiguracji.
EndpointAddress nie implementuje interfejsu ISerializable i dlatego nie można serializować. Aby punkt końcowy był uwidoczniony w ramach kontraktu usługi, musi być serializowalny i musi być również zgodny z protokołem adresowania usługi sieci Web (WS-Addressing). Punkty końcowe z możliwością serializacji zgodne z wersją 1.0 i wersją WS-Addressing z sierpnia 2004 r. są udostępniane odpowiednio przez klasy EndpointAddress10 i EndpointAddressAugust2004.
Konstruktory
EndpointAddress(String) |
Inicjuje nowe wystąpienie klasy EndpointAddress z określonym ciągiem identyfikatora URI. |
EndpointAddress(Uri, AddressHeader[]) |
Inicjuje nowe wystąpienie klasy EndpointAddress z określonym identyfikatorem URI i nagłówkami. |
EndpointAddress(Uri, EndpointIdentity, AddressHeader[]) |
Inicjuje nowe wystąpienie klasy EndpointAddress z określonym identyfikatorem URI, tożsamością i nagłówkami. |
EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection, XmlDictionaryReader, XmlDictionaryReader) |
Inicjuje nowe wystąpienie klasy EndpointAddress z określonym identyfikatorem URI, tożsamością, kolekcją nagłówków oraz czytnikami metadanych i rozszerzeń. |
EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection) |
Inicjuje nowe wystąpienie klasy EndpointAddress z określonym identyfikatorem URI, tożsamością i kolekcją nagłówków. |
Właściwości
AnonymousUri |
Pobiera neutralną dla wersji reprezentację anonimowego identyfikatora URI. |
Headers |
Pobiera kolekcję nagłówków adresów dla punktów końcowych, które może utworzyć konstruktor. |
Identity |
Pobiera tożsamość punktu końcowego użytego do jego uwierzytelnienia. |
IsAnonymous |
Pobiera wartość wskazującą, czy punkt końcowy jest anonimowy. |
IsNone |
Pobiera wartość wskazującą, czy identyfikator URI punktu końcowego to NoneUri. |
NoneUri |
Pobiera identyfikator URI neutralny pod względem wersji używany dla adresu punktu końcowego, do którego nie można wysłać komunikatu. |
Uri |
Pobiera identyfikator URI punktu końcowego. |
Metody
ApplyTo(Message) |
Przypisuje identyfikator URI i właściwości adresu punktu końcowego do wartości nagłówków określonego komunikatu. |
Equals(Object) |
Zwraca wartość wskazującą, czy określony obiekt jest odpowiednikiem bieżącego adresu punktu końcowego. |
GetHashCode() |
Udostępnia unikatowy kod skrótu dla bieżącego adresu punktu końcowego. |
GetReaderAtExtensions() |
Pobiera czytnik słownika XML, który zapewnia dostęp do rozszerzeń. |
GetReaderAtMetadata() |
Pobiera czytnik słownika XML, który zapewnia dostęp do metadanych dla punktu końcowego. |
GetType() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (Odziedziczone po Object) |
ReadFrom(AddressingVersion, XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString) |
Odczytuje adres punktu końcowego dla określonej wersji adresu z określoną kwalifikowaną nazwą z określonego czytnika słownika XML. |
ReadFrom(AddressingVersion, XmlDictionaryReader) |
Odczytuje adres punktu końcowego dla określonej wersji adresu z określonego czytnika słownika XML. |
ReadFrom(AddressingVersion, XmlReader, String, String) |
Odczytuje adres punktu końcowego dla określonej wersji adresu z określoną kwalifikowaną nazwą określonego czytnika XML. |
ReadFrom(AddressingVersion, XmlReader) |
Odczytuje adres punktu końcowego dla określonej wersji adresu z określonego czytnika XML. |
ReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString) |
Odczytuje adres punktu końcowego z określoną kwalifikowaną nazwą z określonego czytnika słownika XML. |
ReadFrom(XmlDictionaryReader) |
Odczytuje adres punktu końcowego z określonego czytnika słownika XML. |
ToString() |
Zwraca kanoniczną reprezentację ciągu identyfikatora URI zawartego w adresie punktu końcowego. |
WriteContentsTo(AddressingVersion, XmlDictionaryWriter) |
Zapisuje wszystkie węzły podrzędne węzła w określonym składniku zapisywania słownika XML. |
WriteContentsTo(AddressingVersion, XmlWriter) |
Zapisuje wszystkie węzły podrzędne węzła w określonym składniku zapisywania XML. |
WriteTo(AddressingVersion, XmlDictionaryWriter, XmlDictionaryString, XmlDictionaryString) |
Zapisuje bieżący adres punktu końcowego określonej wersji w składniku zapisywania słownika XML z określoną przestrzenią nazw i nazwą lokalną. |
WriteTo(AddressingVersion, XmlDictionaryWriter) |
Zapisuje bieżący adres punktu końcowego określonej wersji w określonym składniku zapisywania słownika XML. |
WriteTo(AddressingVersion, XmlWriter, String, String) |
Zapisuje bieżący adres punktu końcowego określonej wersji w składniku zapisywania XML z określoną przestrzenią nazw i nazwą lokalną. |
WriteTo(AddressingVersion, XmlWriter) |
Zapisuje bieżący adres punktu końcowego określonej wersji w określonym składniku zapisywania XML. |
Operatory
Equality(EndpointAddress, EndpointAddress) |
Zwraca wartość wskazującą, czy określone adresy punktu końcowego nie są równoważne. |
Inequality(EndpointAddress, EndpointAddress) |
Zwraca wartość wskazującą, czy określone adresy punktu końcowego nie są równoważne. |