EndpointAddress クラス

定義

サービス エンドポイントとの通信にクライアントが使用する一意のネットワーク アドレスを提供します。

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

注釈

サービスのエンドポイントを一意に識別するエンドポイント アドレス。

エンドポイント アドレスは、サービス エンドポイントに属し、バインド、コントラクト、およびエンドポイントの動作を含みます。

EndpointAddress は、URI とアドレス プロパティ (ID、WSDL 要素、およびオプションのヘッダーのコレクションを含む) を格納します。 オプションのヘッダーは、エンドポイントの識別または対話に使用される、より詳細なアドレス指定情報を提供するために使用されます。 たとえば、複数のサービス インスタンスが使用できる場合に、これらのヘッダーを使用して、特定ユーザーからの受信メッセージの処理に使用するインスタンスを示すことができます。

サービスのエンドポイント アドレスは、コードを使用して命令的に、または構成を通じて宣言的に指定できます。 設置済みサービスのバインドおよびアドレスは一般的に、サービスの開発中に使用されるものとは異なるので、コード内でエンドポイントを定義することは通常、実用的ではありません。 構成を使用してサービス エンドポイントを定義する方が実用的です。

EndpointAddress はインターフェイスを ISerializable 実装しないため、シリアル化できません。 エンドポイントをサービス コントラクトの一部として公開するには、エンドポイントがシリアル化可能であると同時に、Web Service Addressing (WS-Addressing) プロトコルに準拠している必要があります。 WS-Addressing のバージョン 1.0 と August 2004 バージョンに準拠するシリアル化可能なエンドポイントは、それぞれ EndpointAddress10 クラスと EndpointAddressAugust2004 クラスによって提供されます。

コンストラクター

EndpointAddress(String)

指定した URI 文字列を使用して、EndpointAddress クラスの新しいインスタンスを初期化します。

EndpointAddress(Uri, AddressHeader[])

指定した URI とヘッダーを使用して、EndpointAddress クラスの新しいインスタンスを初期化します。

EndpointAddress(Uri, EndpointIdentity, AddressHeader[])

指定した URI、ID、およびヘッダーを使用して、EndpointAddress クラスの新しいインスタンスを初期化します。

EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection)

指定した URI、ID、およびヘッダーのコレクションを使用して、EndpointAddress クラスの新しいインスタンスを初期化します。

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

指定した URI、ID、ヘッダーのコレクション、メタデータ リーダー、および拡張リーダーを使用して、EndpointAddress クラスの新しいインスタンスを初期化します。

プロパティ

AnonymousUri

匿名 URI のバージョンに依存しない表現を取得します。

Headers

ビルダーが作成できるエンドポイントのアドレス ヘッダーのコレクションを取得します。

Identity

エンドポイントを認証するために使用されるエンドポイントの ID を取得します。

IsAnonymous

エンドポイントが 匿名 であるかどうかを示す値を取得します。

IsNone

エンドポイントの URI が NoneUri であるかどうかを示す値を取得します。

NoneUri

メッセージの送信が禁止されているエンドポイントのアドレスで使用される、バージョンに依存しない URI を取得します。

Uri

エンドポイントの URI を取得します。

メソッド

ApplyTo(Message)

エンドポイントの URI とプロパティを、指定したメッセージのヘッダーの値に割り当てます。

Equals(Object)

指定したオブジェクトが現在のエンドポイント アドレスと等しいかどうかを示す値を返します。

GetHashCode()

現在のエンドポイント アドレスの一意のハッシュ コードを用意します。

GetReaderAtExtensions()

拡張へのアクセスを提供する XML ディクショナリ リーダーを取得します。

GetReaderAtMetadata()

エンドポイントのメタデータへのアクセスを提供する XML ディクショナリ リーダーを取得します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

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

指定した XML ディクショナリ リーダーから、指定したアドレス バージョンのエンドポイント アドレスを読み取ります。

ReadFrom(AddressingVersion, XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

指定した XML ディクショナリ リーダーから、指定した修飾名を持つ特定のアドレス バージョンのエンドポイント アドレスを読み取ります。

ReadFrom(AddressingVersion, XmlReader)

指定した XML リーダーから、指定したアドレス バージョンのエンドポイント アドレスを読み取ります。

ReadFrom(AddressingVersion, XmlReader, String, String)

指定した XML リーダーから、指定した修飾名を持つ特定のアドレス バージョンのエンドポイント アドレスを読み取ります。

ReadFrom(XmlDictionaryReader)

指定した XML ディクショナリ リーダーからエンドポイント アドレスを読み取ります。

ReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString)

指定した XML ディクショナリ リーダーから、指定した修飾名を持つエンドポイント アドレスを読み取ります。

ToString()

エンドポイント アドレスに含まれる URI の標準文字列表現を返します。

WriteContentsTo(AddressingVersion, XmlDictionaryWriter)

指定した XML ディクショナリ ライターに、ノードのすべての子ノードを保存します。

WriteContentsTo(AddressingVersion, XmlWriter)

指定した XML ライターに、ノードのすべての子ノードを保存します。

WriteTo(AddressingVersion, XmlDictionaryWriter)

指定した XML ディクショナリ ライターに、指定したバージョンの現在のエンドポイント アドレスを保存します。

WriteTo(AddressingVersion, XmlDictionaryWriter, XmlDictionaryString, XmlDictionaryString)

XML ディクショナリ ライターに、指定したバージョンの現在のエンドポイント アドレスを、指定した名前空間とローカル名を使用して保存します。

WriteTo(AddressingVersion, XmlWriter)

指定した XML ライターに、指定したバージョンの現在のエンドポイント アドレスを保存します。

WriteTo(AddressingVersion, XmlWriter, String, String)

XML ライターに、指定したバージョンの現在のエンドポイント アドレスを、指定した名前空間とローカル名を使用して保存します。

演算子

Equality(EndpointAddress, EndpointAddress)

指定した 2 つのエンドポイント アドレスが等しいかどうかを示す値を返します。

Inequality(EndpointAddress, EndpointAddress)

指定した 2 つのエンドポイント アドレスが等しいかどうかを示す値を返します。

適用対象