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í, která instance služby 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. Definování koncových bodů služby pomocí konfigurace je praktičtější.

EndpointAddress neimplementuje ISerializable rozhraní, takže není serializovatelné. Aby byl koncový bod vystavený jako součást kontraktu služby, musí být serializovatelný a musí být také kompatibilní s protokolem adresování webových služeb (WS-Addressing). Serializovatelné koncové body, které jsou kompatibilní s verzí 1.0 a verzí WS-Addressing ze srpna 2004, jsou poskytovány podle tříd EndpointAddress10 a EndpointAddressAugust2004 tříd.

Konstruktory

Name Description
EndpointAddress(String)

Inicializuje novou instanci EndpointAddress třídy pomocí zadaného řetězce identifikátoru URI.

EndpointAddress(Uri, AddressHeader[])

Inicializuje novou instanci EndpointAddress třídy se zadaným identifikátorem URI a hlavičkami.

EndpointAddress(Uri, EndpointIdentity, AddressHeader[])

Inicializuje novou instanci EndpointAddress třídy se zadaným identifikátorem URI, identitou a hlavičkami.

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 čtenáři rozšíření.

EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection)

Inicializuje novou instanci EndpointAddress třídy se zadaným identifikátorem URI, identitou a kolekcí hlaviček.

Vlastnosti

Name Description
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á určuje, jestli je koncový bod anonymní.

IsNone

Získá hodnotu, která určuje, zda identifikátor URI pro koncový bod je NoneUri.

NoneUri

Získá identifikátor URI neutrální verze použitý pro adresu koncového bodu, do kterého se zpráva nesmí odesílat.

Uri

Získá identifikátor URI pro koncový bod.

Metody

Name Description
ApplyTo(Message)

Přiřadí identifikátor URI a vlastnosti adresy koncového bodu 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ý hashovací kód 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 koncového bodu.

GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
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, XmlDictionaryReader)

Přečte adresu koncového bodu pro zadanou verzi adresy ze zadané čtečky slovníku 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(AddressingVersion, XmlReader)

Přečte adresu koncového bodu pro zadanou verzi adresy ze zadané čtečky XML.

ReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

Načte adresu koncového bodu se zadaným kvalifikovaným názvem ze zadané čtečky slovníku XML.

ReadFrom(XmlDictionaryReader)

Načte adresu koncového bodu ze zadané čtečky slovníku XML.

ToString()

Vrátí kanonický řetězcový reprezentaci identifikátoru URI, který je obsažen 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, 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, XmlDictionaryWriter)

Uloží aktuální adresu koncového bodu zadané verze do zadaného zapisovače slovníku 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.

WriteTo(AddressingVersion, XmlWriter)

Uloží aktuální adresu koncového bodu zadané verze do zadaného zapisovače XML.

Operátory

Name Description
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