EndpointAddress クラス

定義

サービス エンドポイントとの通信にクライアントが使用する一意のネットワーク アドレスを提供します。Provides a unique network address that a client uses to communicate with a service endpoint.

public ref class EndpointAddress
public class EndpointAddress
type EndpointAddress = class
Public Class EndpointAddress
継承
EndpointAddress

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

        }
    }
  }

注釈

サービスのエンドポイントを一意に識別するエンドポイント アドレス。An endpoint address uniquely identifies the endpoint for a service.

エンドポイント アドレスは、サービス エンドポイントに属し、バインド、コントラクト、およびエンドポイントの動作を含みます。The endpoint address belongs to the service endpoint, which also contains the binding, contract and behaviors for the endpoint.

EndpointAddress は、URI とアドレス プロパティ (ID、WSDL 要素、およびオプションのヘッダーのコレクションを含む) を格納します。The EndpointAddress contains a URI and address properties that include an identity, WSDL elements, and a collection of optional headers. オプションのヘッダーは、エンドポイントの識別または対話に使用される、より詳細なアドレス指定情報を提供するために使用されます。The optional headers are used to provide additional, more detailed addressing information to identify or interact with the endpoint. たとえば、複数のサービス インスタンスが使用できる場合に、これらのヘッダーを使用して、特定ユーザーからの受信メッセージの処理に使用するインスタンスを示すことができます。For example, they can be used to indicate which instance of a service is to be used to process an incoming message from a particular user when multiple instances are available.

サービスのエンドポイント アドレスは、コードを使用して命令的に、または構成を通じて宣言的に指定できます。The endpoint address for a service can be specified either imperatively using code or declaratively through configuration. 設置済みサービスのバインドおよびアドレスは一般的に、サービスの開発中に使用されるものとは異なるので、コード内でエンドポイントを定義することは通常、実用的ではありません。Defining endpoints in code is usually not practical because the bindings and addresses for a deployed service are typically different from those used while the service is being developed. 構成を使用してサービスエンドポイントを定義する方がより実用的です。It is more practical to define service endpoints using configuration.

EndpointAddressISerializable インターフェイスを実装しません。したがって、シリアル化可能ではありません。EndpointAddress does not implement the ISerializable interface and so is not serializable. エンドポイントをサービス コントラクトの一部として公開するには、エンドポイントがシリアル化可能であると同時に、Web Service Addressing (WS-Addressing) プロトコルに準拠している必要があります。For an endpoint to be exposed as part of a service contract it must be serializable and it must also be compliant with the Web Service Addressing (WS-Addressing) protocol. WS-Addressing のバージョン 1.0 と August 2004 バージョンに準拠するシリアル化可能なエンドポイントは、それぞれ EndpointAddress10 クラスと EndpointAddressAugust2004 クラスによって提供されます。Serializable endpoints that are compliant with version 1.0 and the August 2004 version of WS-Addressing are provided, respectively, by the EndpointAddress10 and EndpointAddressAugust2004 classes.

コンストラクター

EndpointAddress(String)

指定した URI 文字列を使用して、EndpointAddress クラスの新しいインスタンスを初期化します。Initializes a new instance of the EndpointAddress class with a specified URI string.

EndpointAddress(Uri, AddressHeader[])

指定した URI とヘッダーを使用して、EndpointAddress クラスの新しいインスタンスを初期化します。Initializes a new instance of the EndpointAddress class with a specified URI and headers.

EndpointAddress(Uri, EndpointIdentity, AddressHeader[])

指定した URI、ID、およびヘッダーを使用して、EndpointAddress クラスの新しいインスタンスを初期化します。Initializes a new instance of the EndpointAddress class with a specified URI, identity, and headers.

EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection)

指定した URI、ID、およびヘッダーのコレクションを使用して、EndpointAddress クラスの新しいインスタンスを初期化します。Initializes a new instance of the EndpointAddress class with a specified URI, identity, and header collection.

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

指定した URI、ID、ヘッダーのコレクション、メタデータ リーダー、および拡張リーダーを使用して、EndpointAddress クラスの新しいインスタンスを初期化します。Initializes a new instance of the EndpointAddress class with a specified URI, identity, header collection, and metadata and extension readers.

プロパティ

AnonymousUri

匿名 URI のバージョンに依存しない表現を取得します。Gets a version-neutral representation of the anonymous URI.

Headers

ビルダーが作成できるエンドポイントのアドレス ヘッダーのコレクションを取得します。Gets the collection of address headers for the endpoints that the builder can create.

Identity

エンドポイントを認証するために使用されるエンドポイントの ID を取得します。Gets the identity for the endpoint used to authenticate it.

IsAnonymous

エンドポイントが匿名 であるかどうかを示す値を取得します。Gets a value that indicates whether the endpoint is anonymous.

IsNone

エンドポイントの URI が NoneUri であるかどうかを示す値を取得します。Gets a value that indicates whether the URI for the endpoint is the NoneUri.

NoneUri

メッセージの送信が禁止されているエンドポイントのアドレスで使用される、バージョンに依存しない URI を取得します。Gets a version-neutral URI used for the address of an endpoint to which a message must not be sent.

Uri

エンドポイントの URI を取得します。Gets the URI for the endpoint.

メソッド

ApplyTo(Message)

エンドポイントの URI とプロパティを、指定したメッセージのヘッダーの値に割り当てます。Assigns the URI and properties of the endpoint address to the values of the headers of a specified message.

Equals(Object)

指定したオブジェクトが現在のエンドポイント アドレスと等しいかどうかを示す値を返します。Returns a value that indicates whether a specified object is equivalent to the current endpoint address.

GetHashCode()

現在のエンドポイント アドレスの一意のハッシュ コードを提供します。Provides a unique hash code for the current endpoint address.

GetReaderAtExtensions()

拡張へのアクセスを提供する XML ディクショナリ リーダーを取得します。Gets the XML dictionary reader that provides access to the extensions.

GetReaderAtMetadata()

エンドポイントのメタデータへのアクセスを提供する XML ディクショナリ リーダーを取得します。Gets the XML dictionary reader that provides access to the metadata for an endpoint.

GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ReadFrom(AddressingVersion, XmlDictionaryReader)

指定した XML ディクショナリ リーダーから、指定したアドレス バージョンのエンドポイント アドレスを読み取ります。Reads an endpoint address for a specified address version from a specified XML dictionary reader.

ReadFrom(AddressingVersion, XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

指定した XML ディクショナリ リーダーから、指定した修飾名を持つ特定のアドレス バージョンのエンドポイント アドレスを読み取ります。Reads an endpoint address for a specified address version with a specified qualified name from a specified XML dictionary reader.

ReadFrom(AddressingVersion, XmlReader)

指定した XML リーダーから、指定したアドレス バージョンのエンドポイント アドレスを読み取ります。Reads an endpoint address for a specified address version from a specified XML reader.

ReadFrom(AddressingVersion, XmlReader, String, String)

指定した XML リーダーから、指定した修飾名を持つ特定のアドレス バージョンのエンドポイント アドレスを読み取ります。Reads an endpoint address for a specified address version with a specified qualified name from a specified XML reader.

ReadFrom(XmlDictionaryReader)

指定した XML ディクショナリ リーダーからエンドポイント アドレスを読み取ります。Reads an endpoint address from a specified XML dictionary reader.

ReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

指定した XML ディクショナリ リーダーから、指定した修飾名を持つエンドポイント アドレスを読み取ります。Reads an endpoint address with a specified qualified name from a specified XML dictionary reader.

ToString()

エンドポイント アドレスに含まれる URI の標準文字列表現を返します。Returns a canonical string representation of the URI that is contained in the endpoint address.

WriteContentsTo(AddressingVersion, XmlDictionaryWriter)

指定した XML ディクショナリ ライターに、ノードのすべての子ノードを保存します。Saves all the child nodes of the node to the XML dictionary writer specified.

WriteContentsTo(AddressingVersion, XmlWriter)

指定した XML ライターに、ノードのすべての子ノードを保存します。Saves all the child nodes of the node to the XML writer specified.

WriteTo(AddressingVersion, XmlDictionaryWriter)

指定した XML ディクショナリ ライターに、指定したバージョンの現在のエンドポイント アドレスを保存します。Saves the current endpoint address of a specified version to a specified XML dictionary writer.

WriteTo(AddressingVersion, XmlDictionaryWriter, XmlDictionaryString, XmlDictionaryString)

XML ディクショナリ ライターに、指定したバージョンの現在のエンドポイント アドレスを、指定した名前空間とローカル名を使用して保存します。Saves the current endpoint address of a specified version to an XML dictionary writer with a specified namespace and local name.

WriteTo(AddressingVersion, XmlWriter)

指定した XML ライターに、指定したバージョンの現在のエンドポイント アドレスを保存します。Saves the current endpoint address of a specified version to a specified XML writer.

WriteTo(AddressingVersion, XmlWriter, String, String)

XML ライターに、指定したバージョンの現在のエンドポイント アドレスを、指定した名前空間とローカル名を使用して保存します。Saves the current endpoint address of a specified version to an XML writer with a specified namespace and local name.

演算子

Equality(EndpointAddress, EndpointAddress)

指定した 2 つのエンドポイント アドレスが等しくないかどうかを示す値を返します。Returns a value that indicates whether specified endpoint addresses are not equivalent.

Inequality(EndpointAddress, EndpointAddress)

指定した 2 つのエンドポイント アドレスが等しいかどうかを示す値を返します。Returns a value that indicates whether specified endpoint addresses are not equivalent.

適用対象