EndpointAddress Classe

Definizione

Fornisce un indirizzo di rete univoco usato da un client per comunicare con un endpoint di servizio.

public ref class EndpointAddress
public class EndpointAddress
type EndpointAddress = class
Public Class EndpointAddress
Ereditarietà
EndpointAddress

Esempio

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

Commenti

Un indirizzo endpoint identifica in modo univoco l'endpoint per un servizio.

L'indirizzo endpoint appartiene all'endpoint del servizio, che contiene anche l'associazione, il contratto e i comportamenti per l'endpoint.

EndpointAddress Contiene un URI e le proprietà dell'indirizzo che includono un'identità, elementi WSDL e una raccolta di intestazioni facoltative. Le intestazioni facoltative vengono usate per fornire informazioni aggiuntive e più dettagliate sull'indirizzamento per identificare o interagire con l'endpoint. Ad esempio, possono essere usati per indicare quale istanza di un servizio deve essere usata per elaborare un messaggio in ingresso da un determinato utente quando sono disponibili più istanze.

L'indirizzo dell'endpoint per un servizio può essere specificato in modo imperativo usando il codice o in modo dichiarativo tramite la configurazione. La definizione degli endpoint nel codice in genere non è pratica perché le associazioni e gli indirizzi per un servizio distribuito sono in genere diversi da quelli usati durante lo sviluppo del servizio. È più pratico definire gli endpoint di servizio usando la configurazione.

EndpointAddress non implementa l'interfaccia ISerializable e quindi non è serializzabile. Affinché un endpoint venga esposto come parte di un contratto di servizio, deve essere serializzabile e deve essere conforme anche al protocollo Web Service Addressing (WS-Addressing). Gli endpoint serializzabili conformi alla versione 1.0 e alla versione di agosto 2004 di WS-Addressing vengono forniti, rispettivamente, dalle EndpointAddress10 classi e EndpointAddressAugust2004 .

Costruttori

Nome Descrizione
EndpointAddress(String)

Inizializza una nuova istanza della EndpointAddress classe con una stringa URI specificata.

EndpointAddress(Uri, AddressHeader[])

Inizializza una nuova istanza della EndpointAddress classe con un URI e intestazioni specificati.

EndpointAddress(Uri, EndpointIdentity, AddressHeader[])

Inizializza una nuova istanza della EndpointAddress classe con un URI, un'identità e intestazioni specificati.

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

Inizializza una nuova istanza della EndpointAddress classe con un URI, un'identità, una raccolta di intestazioni e i lettori di estensioni e metadati specificati.

EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection)

Inizializza una nuova istanza della EndpointAddress classe con un URI, un'identità e una raccolta di intestazioni specificati.

Proprietà

Nome Descrizione
AnonymousUri

Ottiene una rappresentazione indipendente dalla versione dell'URI anonimo.

Headers

Ottiene la raccolta di intestazioni di indirizzo per gli endpoint che il generatore può creare.

Identity

Ottiene l'identità per l'endpoint usato per autenticarlo.

IsAnonymous

Ottiene un valore che indica se l'endpoint è anonimo.

IsNone

Ottiene un valore che indica se l'URI per l'endpoint è .NoneUri

NoneUri

Ottiene un URI indipendente dalla versione utilizzato per l'indirizzo di un endpoint a cui non deve essere inviato un messaggio.

Uri

Ottiene l'URI per l'endpoint.

Metodi

Nome Descrizione
ApplyTo(Message)

Assegna l'URI e le proprietà dell'indirizzo dell'endpoint ai valori delle intestazioni di un messaggio specificato.

Equals(Object)

Restituisce un valore che indica se un oggetto specificato è equivalente all'indirizzo dell'endpoint corrente.

GetHashCode()

Fornisce un codice hash univoco per l'indirizzo dell'endpoint corrente.

GetReaderAtExtensions()

Ottiene il lettore di dizionario XML che fornisce l'accesso alle estensioni.

GetReaderAtMetadata()

Ottiene il lettore di dizionario XML che fornisce l'accesso ai metadati per un endpoint.

GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ReadFrom(AddressingVersion, XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

Legge un indirizzo endpoint per una versione dell'indirizzo specificata con un nome completo specificato da un lettore di dizionario XML specificato.

ReadFrom(AddressingVersion, XmlDictionaryReader)

Legge un indirizzo endpoint per una versione dell'indirizzo specificata da un lettore di dizionario XML specificato.

ReadFrom(AddressingVersion, XmlReader, String, String)

Legge un indirizzo endpoint per una versione dell'indirizzo specificata con un nome completo specificato da un lettore XML specificato.

ReadFrom(AddressingVersion, XmlReader)

Legge un indirizzo endpoint per una versione dell'indirizzo specificata da un lettore XML specificato.

ReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

Legge un indirizzo endpoint con un nome completo specificato da un lettore di dizionario XML specificato.

ReadFrom(XmlDictionaryReader)

Legge un indirizzo endpoint da un lettore di dizionario XML specificato.

ToString()

Restituisce una rappresentazione di stringa canonica dell'URI contenuto nell'indirizzo dell'endpoint.

WriteContentsTo(AddressingVersion, XmlDictionaryWriter)

Salva tutti i nodi figlio del nodo nel writer del dizionario XML specificato.

WriteContentsTo(AddressingVersion, XmlWriter)

Salva tutti i nodi figlio del nodo nel writer XML specificato.

WriteTo(AddressingVersion, XmlDictionaryWriter, XmlDictionaryString, XmlDictionaryString)

Salva l'indirizzo endpoint corrente di una versione specificata in un writer di dizionario XML con uno spazio dei nomi e un nome locale specificati.

WriteTo(AddressingVersion, XmlDictionaryWriter)

Salva l'indirizzo endpoint corrente di una versione specificata in un writer di dizionario XML specificato.

WriteTo(AddressingVersion, XmlWriter, String, String)

Salva l'indirizzo endpoint corrente di una versione specificata in un writer XML con uno spazio dei nomi e un nome locale specificati.

WriteTo(AddressingVersion, XmlWriter)

Salva l'indirizzo endpoint corrente di una versione specificata in un writer XML specificato.

Operatori

Nome Descrizione
Equality(EndpointAddress, EndpointAddress)

Restituisce un valore che indica se gli indirizzi endpoint specificati non sono equivalenti.

Inequality(EndpointAddress, EndpointAddress)

Restituisce un valore che indica se gli indirizzi endpoint specificati non sono equivalenti.

Si applica a