RemotingConfiguration.RegisterWellKnownClientType メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
クライアント側で Type オブジェクトを既知の型 (単一呼び出しまたはシングルトン) として登録します。
オーバーロード
| 名前 | 説明 |
|---|---|
| RegisterWellKnownClientType(WellKnownClientTypeEntry) |
クライアント 側で指定されたWellKnownClientTypeEntryに記録Typeオブジェクトを、サーバー上でアクティブ化できる既知の型として登録します。 |
| RegisterWellKnownClientType(Type, String) |
WellKnownClientTypeEntry クラスの新しいインスタンスを初期化するために指定されたパラメーターを使用して、クライアント 側でTypeオブジェクトをサーバー上でアクティブ化できる既知の型として登録します。 |
RegisterWellKnownClientType(WellKnownClientTypeEntry)
クライアント 側で指定されたWellKnownClientTypeEntryに記録Typeオブジェクトを、サーバー上でアクティブ化できる既知の型として登録します。
public:
static void RegisterWellKnownClientType(System::Runtime::Remoting::WellKnownClientTypeEntry ^ entry);
public static void RegisterWellKnownClientType(System.Runtime.Remoting.WellKnownClientTypeEntry entry);
static member RegisterWellKnownClientType : System.Runtime.Remoting.WellKnownClientTypeEntry -> unit
Public Shared Sub RegisterWellKnownClientType (entry As WellKnownClientTypeEntry)
パラメーター
- entry
- WellKnownClientTypeEntry
既知の種類の構成設定。
例外
呼び出し履歴の上位の呼び出し元の少なくとも 1 つに、リモート処理の種類とチャネルを構成するアクセス許可がありません。
注釈
登録された既知のオブジェクトの URI を認識するすべてのクライアントは、 ChannelServicesに優先するチャネルを登録し、 new または Activator.GetObjectを呼び出してオブジェクトをアクティブ化することで、オブジェクトのプロキシを取得できます。
newを使用して既知のオブジェクトをアクティブ化するには、まず、RegisterWellKnownClientType メソッドを使用して、既知のオブジェクト型をクライアントに登録する必要があります。
RegisterWellKnownClientType メソッドを呼び出すと、リモート処理インフラストラクチャにリモート オブジェクトの場所が与え、new キーワードでリモート オブジェクトを作成できるようになります。 一方、 Activator.GetObject メソッドを使用して既知のオブジェクトをアクティブ化する場合は、オブジェクトの URL を引数として指定する必要があるため、クライアント側での事前登録は必要ありません。
こちらもご覧ください
適用対象
RegisterWellKnownClientType(Type, String)
WellKnownClientTypeEntry クラスの新しいインスタンスを初期化するために指定されたパラメーターを使用して、クライアント 側でTypeオブジェクトをサーバー上でアクティブ化できる既知の型として登録します。
public:
static void RegisterWellKnownClientType(Type ^ type, System::String ^ objectUrl);
public static void RegisterWellKnownClientType(Type type, string objectUrl);
static member RegisterWellKnownClientType : Type * string -> unit
Public Shared Sub RegisterWellKnownClientType (type As Type, objectUrl As String)
パラメーター
- objectUrl
- String
既知のクライアント オブジェクトの URL。
例外
呼び出し履歴の上位の呼び出し元の少なくとも 1 つに、リモート処理の種類とチャネルを構成するアクセス許可がありません。
例
次のコード例は、クライアント側のオブジェクト型を既知の型として登録する方法を示しています。 提示されたクライアント コードに対応するサーバー コードについては、 RegisterWellKnownServiceType メソッドの例を参照してください。
#using <system.dll>
#using <system.runtime.remoting.dll>
#using "service.dll"
using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels::Tcp;
using namespace System::Runtime::Remoting::Channels;
int main()
{
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels.Tcp;
using System.Runtime.Remoting.Channels;
public class ClientClass {
public static void Main() {
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels.Tcp
Imports System.Runtime.Remoting.Channels
Public Class ClientClass
Public Shared Sub Main()
ChannelServices::RegisterChannel( gcnew TcpChannel );
RemotingConfiguration::RegisterWellKnownClientType( HelloService::typeid,
"tcp://localhost:8082/HelloServiceApplication/MyUri" );
HelloService ^ service = gcnew HelloService;
ChannelServices.RegisterChannel(new TcpChannel());
RemotingConfiguration.RegisterWellKnownClientType(
typeof(HelloService),
"tcp://localhost:8082/HelloServiceApplication/MyUri"
);
HelloService service = new HelloService();
ChannelServices.RegisterChannel(New TcpChannel())
RemotingConfiguration.RegisterWellKnownClientType(GetType(HelloService), "tcp://localhost:8082/HelloServiceApplication/MyUri")
Dim service As New HelloService()
if ( service == nullptr )
{
Console::WriteLine( "Could not locate server." );
return -1;
}
// Calls the remote method.
Console::WriteLine();
Console::WriteLine( "Calling remote Object*" );
Console::WriteLine( service->HelloMethod( "Caveman" ) );
Console::WriteLine( service->HelloMethod( "Spaceman" ) );
Console::WriteLine( service->HelloMethod( "Client Man" ) );
Console::WriteLine( "Finished remote Object* call" );
Console::WriteLine();
return 0;
}
if(service == null) {
Console.WriteLine("Could not locate server.");
return;
}
// Calls the remote method.
Console.WriteLine();
Console.WriteLine("Calling remote object");
Console.WriteLine(service.HelloMethod("Caveman"));
Console.WriteLine(service.HelloMethod("Spaceman"));
Console.WriteLine(service.HelloMethod("Client Man"));
Console.WriteLine("Finished remote object call");
Console.WriteLine();
}
}
If service Is Nothing Then
Console.WriteLine("Could not locate server.")
Return
End If
' Calls the remote method.
Console.WriteLine()
Console.WriteLine("Calling remote object")
Console.WriteLine(service.HelloMethod("Caveman"))
Console.WriteLine(service.HelloMethod("Spaceman"))
Console.WriteLine(service.HelloMethod("Client Man"))
Console.WriteLine("Finished remote object call")
Console.WriteLine()
End Sub
End Class
注釈
登録された既知のオブジェクトの URI を認識するすべてのクライアントは、 ChannelServicesに優先するチャネルを登録し、 new または Activator.GetObjectを呼び出してオブジェクトをアクティブ化することで、オブジェクトのプロキシを取得できます。
newを使用して既知のオブジェクトをアクティブ化するには、まず、RegisterWellKnownClientType メソッドを使用して、既知のオブジェクト型をクライアントに登録する必要があります。
RegisterWellKnownClientType メソッドを呼び出すと、リモート処理インフラストラクチャにリモート オブジェクトの場所が与え、new キーワードでリモート オブジェクトを作成できるようになります。 一方、 Activator.GetObject メソッドを使用して既知のオブジェクトをアクティブ化する場合は、オブジェクトの URL を引数として指定する必要があるため、クライアント側での事前登録は必要ありません。