EndpointAddress Sınıf

Tanım

İstemcinin hizmet uç noktasıyla iletişim kurmak için kullandığı benzersiz bir ağ adresi sağlar.

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

Örnekler

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

Açıklamalar

Uç nokta adresi, bir hizmetin uç noktasını benzersiz olarak tanımlar.

Uç nokta adresi hizmet uç noktasına aittir ve bu uç noktanın bağlamasını, sözleşmesini ve davranışlarını da içerir.

bir EndpointAddress kimlik, WSDL öğeleri ve isteğe bağlı üst bilgiler koleksiyonu içeren bir URI ve adres özellikleri içerir. İsteğe bağlı üst bilgiler, uç noktayı tanımlamak veya uç noktayla etkileşime geçmek için ek, daha ayrıntılı adresleme bilgileri sağlamak için kullanılır. Örneğin, birden çok örnek kullanılabilir olduğunda belirli bir kullanıcıdan gelen bir iletiyi işlemek için hangi hizmet örneğinin kullanılacağını belirtmek için kullanılabilir.

Bir hizmetin uç nokta adresi kesinlik temelli olarak kod kullanılarak veya yapılandırma aracılığıyla bildirimli olarak belirtilebilir. Dağıtılan bir hizmetin bağlamaları ve adresleri genellikle hizmet geliştirilirken kullanılanlardan farklı olduğundan, kodda uç noktaları tanımlamak genellikle pratik değildir. Yapılandırmayı kullanarak hizmet uç noktalarını tanımlamak daha pratiktir.

EndpointAddress arabirimini ISerializable uygulamaz ve seri hale getirilemez. Bir uç noktanın bir hizmet sözleşmesinin parçası olarak kullanıma sunulacak olması için seri hale getirilebilir olması ve ayrıca Web Hizmeti Adresleme (WS-Adresleme) protokolüyle uyumlu olması gerekir. sürüm 1.0 ve WS-Addressing Ağustos 2004 sürümüyle uyumlu serileştirilebilir uç noktalar sırasıyla ve EndpointAddressAugust2004 sınıfları tarafından EndpointAddress10 sağlanır.

Oluşturucular

EndpointAddress(String)

Belirtilen URI dizesiyle sınıfının yeni bir örneğini EndpointAddress başlatır.

EndpointAddress(Uri, AddressHeader[])

Belirtilen URI ve üst bilgilerle sınıfının yeni bir örneğini EndpointAddress başlatır.

EndpointAddress(Uri, EndpointIdentity, AddressHeader[])

Belirtilen URI, kimlik ve üst bilgilerle sınıfının yeni bir örneğini EndpointAddress başlatır.

EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection)

Belirtilen URI, kimlik ve üst bilgi koleksiyonu ile sınıfının yeni bir örneğini EndpointAddress başlatır.

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

Sınıfın EndpointAddress yeni bir örneğini belirtilen URI, kimlik, üst bilgi koleksiyonu ve meta veri ve uzantı okuyucularla başlatır.

Özellikler

AnonymousUri

Anonim URI'nin sürümden bağımsız bir gösterimini alır.

Headers

Oluşturucunun oluşturabileceği uç noktaların adres üst bilgileri koleksiyonunu alır.

Identity

Kimlik doğrulaması için kullanılan uç noktanın kimliğini alır.

IsAnonymous

Uç noktanın anonim olup olmadığını belirten bir değer alır.

IsNone

Uç noktanın NoneUriURI'sinin olup olmadığını gösteren bir değer alır.

NoneUri

İletinin gönderilmemesi gereken bir uç noktanın adresi için kullanılan sürümden bağımsız bir URI alır.

Uri

Uç noktanın URI'sini alır.

Yöntemler

ApplyTo(Message)

Uç nokta adresinin URI'sini ve özelliklerini belirtilen iletinin üst bilgilerinin değerlerine atar.

Equals(Object)

Belirtilen bir nesnenin geçerli uç nokta adresiyle eşdeğer olup olmadığını gösteren bir değer döndürür.

GetHashCode()

Geçerli uç nokta adresi için benzersiz bir karma kodu sağlar.

GetReaderAtExtensions()

Uzantılara erişim sağlayan XML sözlük okuyucuyu alır.

GetReaderAtMetadata()

Bir uç noktanın meta verilerine erişim sağlayan XML sözlük okuyucuyu alır.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ReadFrom(AddressingVersion, XmlDictionaryReader)

Belirtilen bir XML sözlük okuyucusundan belirtilen adres sürümü için uç nokta adresini okur.

ReadFrom(AddressingVersion, XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

Belirtilen XML sözlük okuyucusundan belirtilen nitelenmiş ada sahip belirtilen bir adres sürümü için uç nokta adresini okur.

ReadFrom(AddressingVersion, XmlReader)

Belirtilen bir XML okuyucusundan belirtilen adres sürümü için uç nokta adresini okur.

ReadFrom(AddressingVersion, XmlReader, String, String)

Belirtilen XML okuyucusundan belirtilen nitelenmiş ada sahip belirtilen bir adres sürümü için uç nokta adresini okur.

ReadFrom(XmlDictionaryReader)

Belirtilen XML sözlük okuyucusundan bir uç nokta adresini okur.

ReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

Belirtilen XML sözlük okuyucusundan belirtilen nitelenmiş ada sahip bir uç nokta adresini okur.

ToString()

Uç nokta adresinde yer alan URI'nin kurallı dize gösterimini döndürür.

WriteContentsTo(AddressingVersion, XmlDictionaryWriter)

Düğümün tüm alt düğümlerini belirtilen XML sözlük yazıcısına kaydeder.

WriteContentsTo(AddressingVersion, XmlWriter)

Düğümün tüm alt düğümlerini belirtilen XML yazıcısına kaydeder.

WriteTo(AddressingVersion, XmlDictionaryWriter)

Belirtilen sürümün geçerli uç nokta adresini belirtilen XML sözlük yazıcısına kaydeder.

WriteTo(AddressingVersion, XmlDictionaryWriter, XmlDictionaryString, XmlDictionaryString)

Belirtilen sürümün geçerli uç nokta adresini, belirtilen ad alanına ve yerel ada sahip bir XML sözlük yazıcısına kaydeder.

WriteTo(AddressingVersion, XmlWriter)

Belirtilen sürümün geçerli uç nokta adresini belirtilen XML yazıcısına kaydeder.

WriteTo(AddressingVersion, XmlWriter, String, String)

Belirtilen sürümün geçerli uç nokta adresini, belirtilen ad alanına ve yerel ada sahip bir XML yazıcısına kaydeder.

İşleçler

Equality(EndpointAddress, EndpointAddress)

Belirtilen uç nokta adreslerinin eşdeğer olup olmadığını belirten bir değer döndürür.

Inequality(EndpointAddress, EndpointAddress)

Belirtilen uç nokta adreslerinin eşdeğer olup olmadığını belirten bir değer döndürür.

Şunlara uygulanır