Freigeben über


EndpointAddress Klasse

Definition

Stelle eine eindeutige Netzwerkadresse bereit, die ein Client verwendet, um mit einem Dienst-Endpunkt zu kommunizieren.

public ref class EndpointAddress
public class EndpointAddress
type EndpointAddress = class
Public Class EndpointAddress
Vererbung
EndpointAddress

Beispiele

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();
        }
    }
  }

Hinweise

Eine Endpunktadresse identifiziert den Endpunkt für einen Dienst eindeutig.

Die Endpunktadresse gehört zu dem Dienstendpunkt, der auch die Bindung, den Vertrag und das Verhalten für den Endpunkt enthält.

Die EndpointAddress enthält einen URI und Adresseneigenschaften, zu denen eine Identität, WSDL-Elemente und eine Auflistung optionaler Header gehören. Die optionalen Header werden verwendet, um zusätzliche, detailliertere Adressierungsinformationen für die Identifikation des Endpunkts oder die Interaktion mit dem Endpunkt bereitzustellen. Sie können beispielsweise verwendet werden, um anzugeben, welche Instanz eines Diensts für das Verarbeiten einer von einem bestimmten Benutzer eingehenden Nachricht verwendet werden soll, wenn mehrere Instanzen verfügbar sind.

Die Endpunktadresse für einen Dienst kann entweder imperativ über Code oder deklarativ über die Konfiguration angegeben werden. Die Definition von Endpunkten im Code ist normalerweise nicht geeignet, da die Bindungen und Adressen für einen bereitgestellten Dienst sich in der Regel von denen unterscheiden, die während der Entwicklung des Diensts verwendet werden. Es ist praktischer, Dienstendpunkte mithilfe der Konfiguration zu definieren.

EndpointAddress implementiert die ISerializable Schnittstelle nicht und ist daher nicht serialisierbar. Damit ein Endpunkt als Teil des Dienstvertrags verfügbar gemacht wird, muss er serialisierbar sein und außerdem mit dem Web Service Addressing-Protokoll (WS-Addressing) kompatibel sein. Serialisierbare Endpunkte, die mit Version 1.0 und der Version vom August 2004 des WS-Adressing-Standards kompatibel sind, werden von der EndpointAddress10-Klasse und der EndpointAddressAugust2004-Klasse bereitgestellt.

Konstruktoren

EndpointAddress(String)

Initialisiert eine neue Instanz der EndpointAddress-Klasse mit einer angegebenen URI-Zeichenfolge.

EndpointAddress(Uri, AddressHeader[])

Initialisiert eine neue Instanz der EndpointAddress-Klasse mit einem angegebenen URI und Headern.

EndpointAddress(Uri, EndpointIdentity, AddressHeader[])

Initialisiert eine neue Instanz der EndpointAddress-Klasse mit einem angegebenen URI, Identität und Headern.

EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection)

Initialisiert eine neue Instanz der EndpointAddress-Klasse mit einem angegebenen URI, Identität und einer Headerauflistung.

EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection, XmlDictionaryReader, XmlDictionaryReader)

Initialisiert eine neue Instanz der EndpointAddress-Klasse mit einem angegebenen URI, Identität, einer Headerauflistung sowie Metadaten und Erweiterungs-Readern.

Eigenschaften

AnonymousUri

Ruft eine versionsunabhängige Darstellung des anonymen URI ab.

Headers

Ruft die Auflistung von Adressenheadern für die Endpunkte ab, die der Generator erzeugen kann.

Identity

Ruft die Identität für den Endpunkt ab, die zum Authentifizieren verwendet wird.

IsAnonymous

Ruft einen Wert ab, der angibt, ob der Endpunkt anonym ist.

IsNone

Ruft einen Wert ab, der angibt, ob der URI für den Endpunkt NoneUri ist.

NoneUri

Ruft einen versionsunabhängigen URI ab, der für die Adresse eines Endpunkts verwendet wird, an die keine Meldung gesendet werden darf.

Uri

Ruft den URI für den Endpunkt ab.

Methoden

ApplyTo(Message)

Weist den URI und die Eigenschaften der Endpunktadresse den Werten der Header einer angegebenen Nachricht zu.

Equals(Object)

Gibt einen Wert zurück, der angibt, ob ein angegebenes Objekt der aktuellen Endpunktadresse entspricht.

GetHashCode()

Stellt einen eindeutigen Hashcode für die aktuelle Endpunktadresse bereit.

GetReaderAtExtensions()

Ruft den XML-Wörterbuch-Reader ab, der den Zugriff auf die Erweiterungen bereitstellt.

GetReaderAtMetadata()

Ruft den XML-Wörterbuch-Reader ab, der den Zugriff auf die Metadaten für einen Endpunkt bereitstellt.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ReadFrom(AddressingVersion, XmlDictionaryReader)

Liest eine Endpunktadresse für eine angegebene Adressenversion von einem angegebenen XML-Wörterbuch-Reader.

ReadFrom(AddressingVersion, XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

Liest eine Endpunktadresse für eine angegebene Adressenversion mit einem angegebenen qualifizierten Namen von einem angegebenen XML-Wörterbuch-Reader.

ReadFrom(AddressingVersion, XmlReader)

Liest eine Endpunktadresse für eine angegebene Adressenversion von einem angegebenen XML-Reader.

ReadFrom(AddressingVersion, XmlReader, String, String)

Liest eine Endpunktadresse für eine angegebene Adressenversion mit einem angegebenen qualifizierten Namen von einem angegebenen XML-Reader.

ReadFrom(XmlDictionaryReader)

Liest eine Endpunktadresse von einem angegebenen XML-Wörterbuch-Reader.

ReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

Liest eine Endpunktadresse mit einem angegebenen qualifizierten Namen von einem angegebenen XML-Wörterbuch-Reader.

ToString()

Gibt einen kanonische Zeichenfolgendarstellung des URI zurück, der in der Endpunktadresse enthalten ist.

WriteContentsTo(AddressingVersion, XmlDictionaryWriter)

Speichert alle untergeordneten Knoten des Knotens im angegebenen XML-Wörterbuch-Writer.

WriteContentsTo(AddressingVersion, XmlWriter)

Speichert alle untergeordneten Knoten des Knotens im angegebenen XML-Writer.

WriteTo(AddressingVersion, XmlDictionaryWriter)

Speichert die aktuelle Endpunktadresse einer angegebenen Version in einen angegebenen XML-Wörterbuch-Writer.

WriteTo(AddressingVersion, XmlDictionaryWriter, XmlDictionaryString, XmlDictionaryString)

Speichert die aktuelle Endpunktadresse einer angegebenen Version in einen XML-Wörterbuch-Writer mit einem angegebenen Namespace und lokalen Namen.

WriteTo(AddressingVersion, XmlWriter)

Speichert die aktuelle Endpunktadresse einer angegebenen Version in einen angegebenen XML-Writer.

WriteTo(AddressingVersion, XmlWriter, String, String)

Speichert die aktuelle Endpunktadresse einer angegebenen Version in einen XML-Writer mit einem angegebenen Namespace und lokalen Namen.

Operatoren

Equality(EndpointAddress, EndpointAddress)

Gibt einen Wert zurück, der angibt, ob angegebene Endpunktadressen nicht äquivalent sind.

Inequality(EndpointAddress, EndpointAddress)

Gibt einen Wert zurück, der angibt, ob angegebene Endpunktadressen nicht äquivalent sind.

Gilt für