EndpointAddress Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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. |