EndpointAddress Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje jedinečnou síťovou adresu, kterou klient používá ke komunikaci s koncovým bodem služby.
public ref class EndpointAddress
public class EndpointAddress
type EndpointAddress = class
Public Class EndpointAddress
- Dědičnost
-
EndpointAddress
Příklady
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();
}
}
}
Poznámky
Adresa koncového bodu jednoznačně identifikuje koncový bod pro službu.
Adresa koncového bodu patří do koncového bodu služby, který obsahuje také vazbu, kontrakt a chování koncového bodu.
Obsahuje EndpointAddress identifikátor URI a vlastnosti adresy, které zahrnují identitu, elementy WSDL a kolekci volitelných hlaviček. Volitelné hlavičky slouží k poskytování dalších, podrobnějších informací o adresování k identifikaci koncového bodu nebo interakci s ním. Dají se například použít k označení instance služby, která se má použít ke zpracování příchozí zprávy od konkrétního uživatele, když je k dispozici více instancí.
Adresu koncového bodu pro službu je možné zadat buď imperativním způsobem pomocí kódu, nebo deklarativní prostřednictvím konfigurace. Definování koncových bodů v kódu obvykle není praktické, protože vazby a adresy nasazené služby se obvykle liší od těch, které se používají při vývoji služby. Je praktičtější definovat koncové body služby pomocí konfigurace.
EndpointAddress neimplementuje ISerializable rozhraní a proto není serializovatelný. Aby byl koncový bod zpřístupněn jako součást kontraktu služby, musí být serializovatelný a musí být také kompatibilní s protokolem WS-Addressing (Web Service Addressing). Serializovatelné koncové body, které jsou kompatibilní s verzí 1.0 a verzí WS-Addressing ze srpna 2004, jsou poskytovány třídami a EndpointAddressAugust2004 třídamiEndpointAddress10.
Konstruktory
EndpointAddress(String) |
Inicializuje novou instanci EndpointAddress třídy se zadaným řetězcem identifikátoru URI. |
EndpointAddress(Uri, AddressHeader[]) |
Inicializuje novou instanci EndpointAddress třídy pomocí zadaného identifikátoru URI a hlaviček. |
EndpointAddress(Uri, EndpointIdentity, AddressHeader[]) |
Inicializuje novou instanci EndpointAddress třídy se zadaným identifikátorem URI, identitou a hlavičkami. |
EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection) |
Inicializuje novou instanci EndpointAddress třídy se zadaným identifikátorem URI, identitou a kolekcí hlaviček. |
EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection, XmlDictionaryReader, XmlDictionaryReader) |
Inicializuje novou instanci EndpointAddress třídy se zadaným identifikátorem URI, identitou, kolekcí hlaviček a metadaty a čtečkami rozšíření. |
Vlastnosti
AnonymousUri |
Získá reprezentaci anonymního identifikátoru URI neutrální verze. |
Headers |
Získá kolekci hlaviček adres pro koncové body, které tvůrce může vytvořit. |
Identity |
Získá identitu koncového bodu použitého k jeho ověření. |
IsAnonymous |
Získá hodnotu, která označuje, jestli je koncový bod anonymní. |
IsNone |
Získá hodnotu, která označuje, zda identifikátor URI pro koncový bod je NoneUri. |
NoneUri |
Získá identifikátor URI neutrální verze, který se používá pro adresu koncového bodu, do kterého se zpráva nesmí odeslat. |
Uri |
Získá identifikátor URI pro koncový bod. |
Metody
ApplyTo(Message) |
Přiřadí identifikátor URI a vlastnosti adresy koncového bodu k hodnotám hlaviček zadané zprávy. |
Equals(Object) |
Vrátí hodnotu, která určuje, jestli je zadaný objekt ekvivalentní aktuální adrese koncového bodu. |
GetHashCode() |
Poskytuje jedinečný kód hash pro aktuální adresu koncového bodu. |
GetReaderAtExtensions() |
Získá čtečku slovníku XML, která poskytuje přístup k rozšířením. |
GetReaderAtMetadata() |
Získá čtečku slovníku XML, která poskytuje přístup k metadatům pro koncový bod. |
GetType() |
Type Získá aktuální instanci. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
ReadFrom(AddressingVersion, XmlDictionaryReader) |
Přečte adresu koncového bodu pro zadanou verzi adresy ze zadané čtečky slovníku XML. |
ReadFrom(AddressingVersion, XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString) |
Přečte adresu koncového bodu pro zadanou verzi adresy se zadaným kvalifikovaným názvem ze zadané čtečky slovníku XML. |
ReadFrom(AddressingVersion, XmlReader) |
Přečte adresu koncového bodu pro zadanou verzi adresy ze zadané čtečky XML. |
ReadFrom(AddressingVersion, XmlReader, String, String) |
Přečte adresu koncového bodu pro zadanou verzi adresy se zadaným kvalifikovaným názvem ze zadané čtečky XML. |
ReadFrom(XmlDictionaryReader) |
Přečte adresu koncového bodu ze zadané čtečky slovníku XML. |
ReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString) |
Přečte adresu koncového bodu se zadaným kvalifikovaným názvem ze zadané čtečky slovníku XML. |
ToString() |
Vrátí kanonické řetězcové vyjádření identifikátoru URI obsaženého v adrese koncového bodu. |
WriteContentsTo(AddressingVersion, XmlDictionaryWriter) |
Uloží všechny podřízené uzly uzlu do zadaného zapisovače slovníku XML. |
WriteContentsTo(AddressingVersion, XmlWriter) |
Uloží všechny podřízené uzly uzlu do zadaného zapisovače XML. |
WriteTo(AddressingVersion, XmlDictionaryWriter) |
Uloží aktuální adresu koncového bodu zadané verze do zadaného zapisovače slovníku XML. |
WriteTo(AddressingVersion, XmlDictionaryWriter, XmlDictionaryString, XmlDictionaryString) |
Uloží aktuální adresu koncového bodu zadané verze do zapisovače slovníku XML se zadaným oborem názvů a místním názvem. |
WriteTo(AddressingVersion, XmlWriter) |
Uloží aktuální adresu koncového bodu zadané verze do zadaného zapisovače XML. |
WriteTo(AddressingVersion, XmlWriter, String, String) |
Uloží aktuální adresu koncového bodu zadané verze do zapisovače XML se zadaným oborem názvů a místním názvem. |
Operátory
Equality(EndpointAddress, EndpointAddress) |
Vrátí hodnotu, která určuje, jestli zadané adresy koncových bodů nejsou ekvivalentní. |
Inequality(EndpointAddress, EndpointAddress) |
Vrátí hodnotu, která určuje, jestli zadané adresy koncových bodů nejsou ekvivalentní. |