EndpointAddress クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
クライアントがサービス エンドポイントとの通信に使用する一意のネットワーク アドレスを提供します。
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には、ID、WSDL 要素、および省略可能なヘッダーのコレクションを含む URI プロパティとアドレス プロパティが含まれています。 オプションのヘッダーは、エンドポイントを識別または操作するための追加のより詳細なアドレス指定情報を提供するために使用されます。 たとえば、複数のインスタンスが使用可能な場合に特定のユーザーからの受信メッセージを処理するために使用するサービスのインスタンスを示すために使用できます。
サービスのエンドポイント アドレスは、コードを使用して命令的に指定することも、構成を通じて宣言によって指定することもできます。 通常、コードでのエンドポイントの定義は実用的ではありません。デプロイされたサービスのバインドとアドレスは、通常、サービスの開発中に使用されるものとは異なるためです。 構成を使用してサービス エンドポイントを定義する方が実用的です。
EndpointAddress は ISerializable インターフェイスを実装していないため、シリアル化できません。 サービス コントラクトの一部として公開されるエンドポイントは、シリアル化可能である必要があり、Web サービス アドレス指定 (WS-Addressing) プロトコルにも準拠している必要があります。 バージョン 1.0 と 2004 年 8 月バージョンの WS-Addressing に準拠しているシリアル化可能なエンドポイントは、それぞれ、 EndpointAddress10 クラスと EndpointAddressAugust2004 クラスによって提供されます。
コンストラクター
| 名前 | 説明 |
|---|---|
| EndpointAddress(String) |
指定した URI 文字列を使用して、 EndpointAddress クラスの新しいインスタンスを初期化します。 |
| EndpointAddress(Uri, AddressHeader[]) |
指定した URI とヘッダーを使用して、 EndpointAddress クラスの新しいインスタンスを初期化します。 |
| EndpointAddress(Uri, EndpointIdentity, AddressHeader[]) |
指定した URI、ID、およびヘッダーを使用して、 EndpointAddress クラスの新しいインスタンスを初期化します。 |
| EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection, XmlDictionaryReader, XmlDictionaryReader) |
指定した URI、ID、ヘッダー コレクション、およびメタデータリーダーと拡張リーダーを使用して、 EndpointAddress クラスの新しいインスタンスを初期化します。 |
| EndpointAddress(Uri, EndpointIdentity, AddressHeaderCollection) |
指定した 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, XmlDictionaryString, XmlDictionaryString) |
指定した XML ディクショナリ リーダーから、指定した修飾名を持つ指定したアドレス バージョンのエンドポイント アドレスを読み取ります。 |
| ReadFrom(AddressingVersion, XmlDictionaryReader) |
指定した XML ディクショナリ リーダーから、指定したアドレス バージョンのエンドポイント アドレスを読み取ります。 |
| ReadFrom(AddressingVersion, XmlReader, String, String) |
指定した XML リーダーから、指定した修飾名を持つ指定したアドレス バージョンのエンドポイント アドレスを読み取ります。 |
| ReadFrom(AddressingVersion, XmlReader) |
指定した XML リーダーから、指定したアドレス バージョンのエンドポイント アドレスを読み取ります。 |
| ReadFrom(XmlDictionaryReader, XmlDictionaryString, XmlDictionaryString) |
指定した XML ディクショナリ リーダーから、指定した修飾名を持つエンドポイント アドレスを読み取ります。 |
| ReadFrom(XmlDictionaryReader) |
指定した XML ディクショナリ リーダーからエンドポイント アドレスを読み取ります。 |
| ToString() |
エンドポイント アドレスに含まれる URI の正規文字列表現を返します。 |
| WriteContentsTo(AddressingVersion, XmlDictionaryWriter) |
ノードのすべての子ノードを、指定された XML ディクショナリ ライターに保存します。 |
| WriteContentsTo(AddressingVersion, XmlWriter) |
ノードのすべての子ノードを、指定された XML ライターに保存します。 |
| WriteTo(AddressingVersion, XmlDictionaryWriter, XmlDictionaryString, XmlDictionaryString) |
指定したバージョンの現在のエンドポイント アドレスを、指定した名前空間とローカル名を持つ XML ディクショナリ ライターに保存します。 |
| WriteTo(AddressingVersion, XmlDictionaryWriter) |
指定したバージョンの現在のエンドポイント アドレスを、指定した XML ディクショナリ ライターに保存します。 |
| WriteTo(AddressingVersion, XmlWriter, String, String) |
指定したバージョンの現在のエンドポイント アドレスを、指定した名前空間とローカル名を持つ XML ライターに保存します。 |
| WriteTo(AddressingVersion, XmlWriter) |
指定したバージョンの現在のエンドポイント アドレスを、指定した XML ライターに保存します。 |
演算子
| 名前 | 説明 |
|---|---|
| Equality(EndpointAddress, EndpointAddress) |
指定したエンドポイント アドレスが等しくないかどうかを示す値を返します。 |
| Inequality(EndpointAddress, EndpointAddress) |
指定したエンドポイント アドレスが等しくないかどうかを示す値を返します。 |