EndpointAddress Třída

Definice

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í.

Platí pro