EndpointAddress Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt een uniek netwerkadres dat een client gebruikt om te communiceren met een service-eindpunt.
public ref class EndpointAddress
public class EndpointAddress
type EndpointAddress = class
Public Class EndpointAddress
- Overname
-
EndpointAddress
Voorbeelden
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();
}
}
}
Opmerkingen
Een eindpuntadres identificeert het eindpunt voor een service op unieke wijze.
Het eindpuntadres behoort tot het service-eindpunt, dat ook de binding, het contract en gedrag voor het eindpunt bevat.
Het EndpointAddress bevat een URI- en adreseigenschappen die een identiteit, WSDL-elementen en een verzameling optionele headers bevatten. De optionele headers worden gebruikt om aanvullende, gedetailleerdere adresseringsinformatie te bieden om het eindpunt te identificeren of ermee te communiceren. Ze kunnen bijvoorbeeld worden gebruikt om aan te geven welk exemplaar van een service moet worden gebruikt om een binnenkomend bericht van een bepaalde gebruiker te verwerken wanneer er meerdere exemplaren beschikbaar zijn.
Het eindpuntadres voor een service kan imperatief worden opgegeven met behulp van code of declaratief via configuratie. Het definiëren van eindpunten in code is meestal niet praktisch omdat de bindingen en adressen voor een geïmplementeerde service doorgaans afwijken van de bindingen en adressen die worden gebruikt terwijl de service wordt ontwikkeld. Het is praktischer om service-eindpunten te definiëren met behulp van configuratie.
EndpointAddress implementeert de ISerializable interface niet en is dus niet serialiseerbaar. Als u een eindpunt wilt weergeven als onderdeel van een servicecontract, moet het serialiseerbaar zijn en moet het ook voldoen aan het protocol webserviceadressering (WS-Addressing). Serialiseerbare eindpunten die compatibel zijn met versie 1.0 en de versie van augustus 2004 van WS-Addressing worden geleverd door respectievelijk de EndpointAddress10 en EndpointAddressAugust2004 klassen.
Constructors
| Name | Description |
|---|---|
| EndpointAddress(String) |
Initialiseert een nieuw exemplaar van de EndpointAddress klasse met een opgegeven URI-tekenreeks. |
| EndpointAddress(Uri, AddressHeader[]) |
Initialiseert een nieuw exemplaar van de EndpointAddress klasse met een opgegeven URI en headers. |
| EndpointAddress(Uri, EndpointIdentity, AddressHeader[]) |
Initialiseert een nieuw exemplaar van de EndpointAddress klasse met een opgegeven URI, identiteit en headers. |
| EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection, XmlDictionaryReader, XmlDictionaryReader) |
Initialiseert een nieuw exemplaar van de EndpointAddress klasse met een opgegeven URI, identiteit, verzameling headers en metagegevens en extensielezers. |
| EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection) |
Initialiseert een nieuw exemplaar van de EndpointAddress klasse met een opgegeven URI, identiteit en headerverzameling. |
Eigenschappen
| Name | Description |
|---|---|
| AnonymousUri |
Hiermee haalt u een versieneutrale weergave van de anonieme URI op. |
| Headers |
Hiermee haalt u de verzameling adresheaders op voor de eindpunten die de opbouwfunctie kan maken. |
| Identity |
Hiermee haalt u de identiteit op voor het eindpunt dat wordt gebruikt om het te verifiëren. |
| IsAnonymous |
Hiermee wordt een waarde opgehaald die aangeeft of het eindpunt anoniem is. |
| IsNone |
Hiermee wordt een waarde opgehaald die aangeeft of de URI voor het eindpunt de NoneUriwaarde is. |
| NoneUri |
Hiermee haalt u een versieneutrale URI op die wordt gebruikt voor het adres van een eindpunt waarnaar een bericht niet mag worden verzonden. |
| Uri |
Hiermee haalt u de URI voor het eindpunt op. |
Methoden
| Name | Description |
|---|---|
| ApplyTo(Message) |
Hiermee wijst u de URI en eigenschappen van het eindpuntadres toe aan de waarden van de headers van een opgegeven bericht. |
| Equals(Object) |
Retourneert een waarde die aangeeft of een opgegeven object gelijk is aan het huidige eindpuntadres. |
| GetHashCode() |
Biedt een unieke hash-code voor het huidige eindpuntadres. |
| GetReaderAtExtensions() |
Hiermee haalt u de XML-woordenlijstlezer op die toegang biedt tot de extensies. |
| GetReaderAtMetadata() |
Hiermee haalt u de XML-woordenlijstlezer op die toegang biedt tot de metagegevens voor een eindpunt. |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ReadFrom(AddressingVersion, XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString) |
Hiermee leest u een eindpuntadres voor een opgegeven adresversie met een opgegeven gekwalificeerde naam van een opgegeven XML-woordenlijstlezer. |
| ReadFrom(AddressingVersion, XmlDictionaryReader) |
Leest een eindpuntadres voor een opgegeven adresversie van een opgegeven XML-woordenlijstlezer. |
| ReadFrom(AddressingVersion, XmlReader, String, String) |
Leest een eindpuntadres voor een opgegeven adresversie met een opgegeven gekwalificeerde naam van een opgegeven XML-lezer. |
| ReadFrom(AddressingVersion, XmlReader) |
Leest een eindpuntadres voor een opgegeven adresversie van een opgegeven XML-lezer. |
| ReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString) |
Hiermee leest u een eindpuntadres met een opgegeven gekwalificeerde naam van een opgegeven XML-woordenlijstlezer. |
| ReadFrom(XmlDictionaryReader) |
Leest een eindpuntadres van een opgegeven XML-woordenlijstlezer. |
| ToString() |
Retourneert een canonieke tekenreeksweergave van de URI die zich in het eindpuntadres bevindt. |
| WriteContentsTo(AddressingVersion, XmlDictionaryWriter) |
Alle onderliggende knooppunten van het knooppunt worden opgeslagen in de opgegeven XML-woordenlijstschrijver. |
| WriteContentsTo(AddressingVersion, XmlWriter) |
Slaat alle onderliggende knooppunten van het knooppunt op in de opgegeven XML-schrijver. |
| WriteTo(AddressingVersion, XmlDictionaryWriter, XmlDictionaryString, XmlDictionaryString) |
Slaat het huidige eindpuntadres van een opgegeven versie op in een XML-woordenlijstschrijver met een opgegeven naamruimte en lokale naam. |
| WriteTo(AddressingVersion, XmlDictionaryWriter) |
Hiermee wordt het huidige eindpuntadres van een opgegeven versie opgeslagen in een opgegeven XML-woordenlijstschrijver. |
| WriteTo(AddressingVersion, XmlWriter, String, String) |
Hiermee wordt het huidige eindpuntadres van een opgegeven versie opgeslagen in een XML-schrijver met een opgegeven naamruimte en lokale naam. |
| WriteTo(AddressingVersion, XmlWriter) |
Hiermee wordt het huidige eindpuntadres van een opgegeven versie opgeslagen in een opgegeven XML-schrijver. |
Operators
| Name | Description |
|---|---|
| Equality(EndpointAddress, EndpointAddress) |
Retourneert een waarde die aangeeft of opgegeven eindpuntadressen niet gelijkwaardig zijn. |
| Inequality(EndpointAddress, EndpointAddress) |
Retourneert een waarde die aangeeft of opgegeven eindpuntadressen niet gelijkwaardig zijn. |