EndpointAddress Klass

Definition

Tillhandahåller en unik nätverksadress som en klient använder för att kommunicera med en tjänstslutpunkt.

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

Exempel

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

Kommentarer

En slutpunktsadress identifierar unikt slutpunkten för en tjänst.

Slutpunktsadressen tillhör tjänstslutpunkten, som också innehåller bindning, kontrakt och beteenden för slutpunkten.

Innehåller EndpointAddress en URI och adressegenskaper som innehåller en identitet, WSDL-element och en samling valfria rubriker. De valfria rubrikerna används för att ge ytterligare, mer detaljerad adresseringsinformation för att identifiera eller interagera med slutpunkten. De kan till exempel användas för att ange vilken instans av en tjänst som ska användas för att bearbeta ett inkommande meddelande från en viss användare när flera instanser är tillgängliga.

Slutpunktsadressen för en tjänst kan anges antingen imperativt med hjälp av kod eller deklarativt via konfiguration. Det är vanligtvis inte praktiskt att definiera slutpunkter i kod eftersom bindningar och adresser för en distribuerad tjänst vanligtvis skiljer sig från de som används när tjänsten utvecklas. Det är mer praktiskt att definiera tjänstslutpunkter med hjälp av konfiguration.

EndpointAddress implementerar ISerializable inte gränssnittet och är därför inte serialiserbart. För att en slutpunkt ska kunna exponeras som en del av ett tjänstkontrakt måste den vara serialiserbar och måste också vara kompatibel med protokollet Web Service Addressing (WS-Addressing). Serialiserbara slutpunkter som är kompatibla med version 1.0 och augusti 2004-versionen av WS-Addressing tillhandahålls EndpointAddress10 av klasserna och EndpointAddressAugust2004 .

Konstruktorer

Name Description
EndpointAddress(String)

Initierar en ny instans av EndpointAddress klassen med en angiven URI-sträng.

EndpointAddress(Uri, AddressHeader[])

Initierar en ny instans av EndpointAddress klassen med en angiven URI och rubriker.

EndpointAddress(Uri, EndpointIdentity, AddressHeader[])

Initierar en ny instans av EndpointAddress klassen med en angiven URI, identitet och rubriker.

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

Initierar en ny instans av EndpointAddress klassen med en angiven URI, identitet, rubriksamling och metadata och tilläggsläsare.

EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection)

Initierar en ny instans av EndpointAddress klassen med en angiven URI, identitet och rubriksamling.

Egenskaper

Name Description
AnonymousUri

Hämtar en versionsneutral representation av den anonyma URI:n.

Headers

Hämtar samlingen med adresshuvuden för de slutpunkter som byggverktyget kan skapa.

Identity

Hämtar identiteten för slutpunkten som används för att autentisera den.

IsAnonymous

Hämtar ett värde som anger om slutpunkten är anonym.

IsNone

Hämtar ett värde som anger om URI:n för slutpunkten är NoneUri.

NoneUri

Hämtar en versionsneutral URI som används för adressen till en slutpunkt som ett meddelande inte får skickas till.

Uri

Hämtar URI:n för slutpunkten.

Metoder

Name Description
ApplyTo(Message)

Tilldelar URI och egenskaper för slutpunktsadressen till värdena för rubrikerna i ett angivet meddelande.

Equals(Object)

Returnerar ett värde som anger om ett angivet objekt motsvarar den aktuella slutpunktsadressen.

GetHashCode()

Tillhandahåller en unik hash-kod för den aktuella slutpunktsadressen.

GetReaderAtExtensions()

Hämtar XML-ordlisteläsaren som ger åtkomst till tilläggen.

GetReaderAtMetadata()

Hämtar XML-ordlisteläsaren som ger åtkomst till metadata för en slutpunkt.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ReadFrom(AddressingVersion, XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

Läser en slutpunktsadress för en angiven adressversion med ett angivet kvalificerat namn från en angiven XML-ordlisteläsare.

ReadFrom(AddressingVersion, XmlDictionaryReader)

Läser en slutpunktsadress för en angiven adressversion från en angiven XML-ordlisteläsare.

ReadFrom(AddressingVersion, XmlReader, String, String)

Läser en slutpunktsadress för en angiven adressversion med ett angivet kvalificerat namn från en angiven XML-läsare.

ReadFrom(AddressingVersion, XmlReader)

Läser en slutpunktsadress för en angiven adressversion från en angiven XML-läsare.

ReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

Läser en slutpunktsadress med ett angivet kvalificerat namn från en angiven XML-ordlisteläsare.

ReadFrom(XmlDictionaryReader)

Läser en slutpunktsadress från en angiven XML-ordlisteläsare.

ToString()

Returnerar en kanonisk strängrepresentation av den URI som finns i slutpunktsadressen.

WriteContentsTo(AddressingVersion, XmlDictionaryWriter)

Sparar alla underordnade noder i noden till den ANGIVNA XML-ordlisteskrivaren.

WriteContentsTo(AddressingVersion, XmlWriter)

Sparar alla underordnade noder i noden till den ANGIVNA XML-skrivaren.

WriteTo(AddressingVersion, XmlDictionaryWriter, XmlDictionaryString, XmlDictionaryString)

Sparar den aktuella slutpunktsadressen för en angiven version till en XML-ordlisteskrivare med ett angivet namnområde och lokalt namn.

WriteTo(AddressingVersion, XmlDictionaryWriter)

Sparar den aktuella slutpunktsadressen för en angiven version till en angiven XML-ordlisteskrivare.

WriteTo(AddressingVersion, XmlWriter, String, String)

Sparar den aktuella slutpunktsadressen för en angiven version till en XML-skrivare med ett angivet namnområde och lokalt namn.

WriteTo(AddressingVersion, XmlWriter)

Sparar den aktuella slutpunktsadressen för en angiven version till en angiven XML-skrivare.

Operatorer

Name Description
Equality(EndpointAddress, EndpointAddress)

Returnerar ett värde som anger om angivna slutpunktsadresser inte är likvärdiga.

Inequality(EndpointAddress, EndpointAddress)

Returnerar ett värde som anger om angivna slutpunktsadresser inte är likvärdiga.

Gäller för