EndpointAddress Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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. |