ActivatedClientTypeEntry ActivatedClientTypeEntry ActivatedClientTypeEntry ActivatedClientTypeEntry Class

定義

サーバーでアクティブにできる型としてクライアント エンドで登録されたオブジェクト型の値を保持します。Holds values for an object type registered on the client end as a type that can be activated on the server.

public ref class ActivatedClientTypeEntry : System::Runtime::Remoting::TypeEntry
[System.Runtime.InteropServices.ComVisible(true)]
public class ActivatedClientTypeEntry : System.Runtime.Remoting.TypeEntry
type ActivatedClientTypeEntry = class
    inherit TypeEntry
Public Class ActivatedClientTypeEntry
Inherits TypeEntry
継承
ActivatedClientTypeEntryActivatedClientTypeEntryActivatedClientTypeEntryActivatedClientTypeEntry
属性

次のコード例を使用する方法を示しています、ActivatedClientTypeEntryクライアントを登録するリモート オブジェクトをアクティブ化します。The following code example shows how to use a ActivatedClientTypeEntry to register a client activated remote object. この例には、3 つの部分、クライアント、サーバー、およびクライアントとサーバーによって使用されるリモート オブジェクトが含まれています。The example contains three parts, a client, a server, and a remote object used by the client and server.

次のコード例では、クライアントを示します。The following code example shows a client:

#using <System.Runtime.Remoting.dll>
#using <ActivatedClientTypeEntry_Share.dll>

using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels;
using namespace System::Runtime::Remoting::Channels::Tcp;
static void main()
{
   // Register TCP Channel.
   ChannelServices::RegisterChannel( gcnew TcpChannel );
   
   // Create activated client type entry.
   ActivatedClientTypeEntry^ activatedClientTypeEntry = gcnew ActivatedClientTypeEntry( HelloServer::typeid, "tcp://localhost:8082" );
   
   // Register type on client to activate it on the server.
   RemotingConfiguration::RegisterActivatedClientType( activatedClientTypeEntry );
   
   // Activate a client activated object type.
   HelloServer^ helloServer = gcnew HelloServer( "ParameterString" );
   
   // Print the object type.
   Console::WriteLine( "Object type of client activated object: {0}", activatedClientTypeEntry->ObjectType->ToString() );
   
   // Print the application URL.
   Console::WriteLine( "Application url where the type is activated: {0}", activatedClientTypeEntry->ApplicationUrl->ToString() );
   
   // Print the string representation of the type entry.
   Console::WriteLine( "Type and assembly name and application URL of the remote object: {0}", activatedClientTypeEntry->ToString() );
   
   // Print a blank line.
   Console::WriteLine();
   
   // Check that server was located.
   if (  !helloServer )
   {
      Console::WriteLine( "Could not locate server" );
   }
   else
   {
      Console::WriteLine( "Calling remote object" );
      Console::WriteLine( helloServer->HelloMethod( "Bill" ) );
   }
}
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

public class MyClient
{
    public static void Main()
    {
        // Register TCP Channel.
        ChannelServices.RegisterChannel(new TcpChannel());

        // Create activated client type entry.
        ActivatedClientTypeEntry myActivatedClientTypeEntry =
            new ActivatedClientTypeEntry(typeof(HelloServer),
            "tcp://localhost:8082");

        // Register type on client to activate it on the server.
        RemotingConfiguration.RegisterActivatedClientType(
            myActivatedClientTypeEntry);

        // Activate a client activated object type.
        HelloServer myHelloServer = new HelloServer("ParameterString");

        // Print the object type.
        Console.WriteLine(
            "Object type of client activated object: " +
            myActivatedClientTypeEntry.ObjectType.ToString());

        // Print the application URL.
        Console.WriteLine(
            "Application url where the type is activated: " +
            myActivatedClientTypeEntry.ApplicationUrl);

        // Print the string representation of the type entry.
        Console.WriteLine(
            "Type name, assembly name and application URL " +
            "of the remote object: " + 
            myActivatedClientTypeEntry.ToString());

        // Print a blank line.
        Console.WriteLine();

        // Check that server was located.
        if (myHelloServer == null)
        {
            Console.WriteLine("Could not locate server");
        }
        else
        {
            Console.WriteLine("Calling remote object");
            Console.WriteLine(myHelloServer.HelloMethod("Bill"));
        }
    }
}
Imports System
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Tcp

Public Class MyClient
    
    Public Shared Sub Main()
        ' Register TCP Channel.
        ChannelServices.RegisterChannel(New TcpChannel())

        ' Create activated client type entry.
        Dim myActivatedClientTypeEntry As _
            New ActivatedClientTypeEntry(GetType(HelloServer), _
            "tcp://localhost:8082")

        ' Register type on client to activate it on the server.
        RemotingConfiguration.RegisterActivatedClientType( _
            myActivatedClientTypeEntry)

        ' Activate a client activated object type.
        Dim myHelloServer As New HelloServer("ParameterString")

        ' Print the object type.
        Console.WriteLine("Object type of client activated object: " + _
            myActivatedClientTypeEntry.ObjectType.ToString())

        ' Print the application URL.
        Console.WriteLine("Application url where the type is activated: " + _
            myActivatedClientTypeEntry.ApplicationUrl)

        ' Print the string representation of the type entry.
        Console.WriteLine( _
            "Type name, assembly name and application URL " + _
            "of the remote object: " + _
            myActivatedClientTypeEntry.ToString())

        ' Print a blank line.
        Console.WriteLine()

        ' Check that server was located.
        If myHelloServer Is Nothing Then
            Console.WriteLine("Could not locate server")
        Else
            Console.WriteLine("Calling remote object")
            Console.WriteLine(myHelloServer.HelloMethod("Bill"))
        End If
    End Sub 'Main
End Class 'MyClient

次のコード例では、このクライアントのサーバーを示しています。The following code example shows a server for this client:

#using <ActivatedClientTypeEntry_Share.dll>
#using <System.Runtime.Remoting.dll>

using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels;
using namespace System::Runtime::Remoting::Channels::Tcp;
void main()
{
   ChannelServices::RegisterChannel( gcnew TcpChannel( 8082 ) );
   RemotingConfiguration::RegisterActivatedServiceType( HelloServer::typeid );
   Console::WriteLine( "Press enter to stop this process" );
   Console::ReadLine();
}

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

public class MyServer
{
    public static void Main()
    {
        ChannelServices.RegisterChannel(new TcpChannel(8082));
        RemotingConfiguration.RegisterActivatedServiceType(typeof(HelloServer));
        Console.WriteLine("Press enter to stop this process");
        Console.ReadLine();
   }
}
Imports System
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Tcp

Public Class MyServer
    
    Public Shared Sub Main()
        ChannelServices.RegisterChannel(New TcpChannel(8082))
        RemotingConfiguration.RegisterActivatedServiceType(GetType(HelloServer))
        Console.WriteLine("Press enter to stop this process")
        Console.ReadLine()
    End Sub 'Main

End Class 'MyServer

次のコード例では、クライアントとサーバーで使用するリモート オブジェクトを提供します。The following code example provides the remote object used by the client and the server:

using namespace System;
public ref class HelloServer: public MarshalByRefObject
{
public:
   HelloServer( String^ myString )
   {
      Console::WriteLine( "HelloServer activated" );
      Console::WriteLine( "Paramater passed to the constructor is {0}", myString );
   }

   String^ HelloMethod( String^ myName )
   {
      Console::WriteLine( "HelloMethod : {0}", myName );
      return String::Format( "Hi there {0}", myName );
   }

};

using System;
public class HelloServer : MarshalByRefObject
{
    public HelloServer(String myString)
    {
        Console.WriteLine("HelloServer activated");
        Console.WriteLine("Parameter passed to the constructor is "+myString);
    }
    public String HelloMethod(String myName)
    {
        Console.WriteLine("HelloMethod : {0}",myName);
        return "Hi there " + myName;
    }
}
Imports System

Public Class HelloServer
    Inherits MarshalByRefObject
    
    Public Sub New(myString As String)
        Console.WriteLine("HelloServer activated")
        Console.WriteLine("Parameter passed to the constructor is " + myString)
    End Sub 'New
    
    Public Function HelloMethod(myName As String) As String
        Console.WriteLine("HelloMethod : {0}", myName)
        Return "Hi there " + myName
    End Function 'HelloMethod
End Class 'HelloServer

注釈

知る必要があります、クライアントでクライアント側でアクティブ オブジェクトのインスタンスを作成するそのTypeを使用して、クライアントで登録する必要があり、RegisterActivatedClientTypeメソッド。To create an instance of a client-activated object on the client, you must know its Type and it must be registered on the client by using the RegisterActivatedClientType method. クライアントを登録する必要がありますまずクライアント側でアクティブ オブジェクトの新しいインスタンスをプロキシのチャネルを取得するChannelServices呼び出すことによって、オブジェクトをアクティブ化とnewします。To obtain a proxy for a new instance of the client-activated object the client must first register a channel with ChannelServices and then activate the object by calling new.

クライアント側でアクティブ オブジェクトの型をアクティブ化する、newキーワード、オブジェクトの種類を使用して、クライアントで最初に登録する必要があります、RegisterActivatedClientTypeメソッド。To activate a client-activated object type with the new keyword, you must first register the object type on the client using the RegisterActivatedClientType method. 呼び出してRegisterActivatedClientTypeリモート アプリケーションの場所をリモート処理インフラストラクチャに付与されます、newによって作成されます。By calling RegisterActivatedClientType you are giving the remoting infrastructure the location of the remote application where new attempts to create it. その一方を使用する場合、Activator.CreateInstanceメソッドは、クライアント側でアクティブ オブジェクトの新しいインスタンスを作成するため、クライアント エンドで、事前に登録する必要はありません、パラメーターとして、リモート アプリケーションの URL を指定する必要があります。If, on the other hand, you use the Activator.CreateInstance method to create a new instance of the client-activated object, you must supply the remote application's URL as a parameter, so no prior registration on the client end is necessary. 指定する、Activator.CreateInstanceサーバーの URL を持つメソッドにオブジェクトを作成するためにすると、インスタンス内の URL をカプセル化する必要があります、UrlAttributeクラス。To supply the Activator.CreateInstance method with the URL of the server on which you want to create the object, you must encapsulate the URL in an instance of the UrlAttribute class.

クライアントでアクティブ化されるオブジェクトとリモート オブジェクトのアクティブ化の詳細な説明を参照してください。 Activation of Remote Objectsします。For a detailed description of client activated objects and remote object activation see Activation of Remote Objects.

コンストラクター

ActivatedClientTypeEntry(String, String, String) ActivatedClientTypeEntry(String, String, String) ActivatedClientTypeEntry(String, String, String) ActivatedClientTypeEntry(String, String, String)

指定した型名、アセンブリ名、およびアプリケーションの URL を使用して、ActivatedClientTypeEntry クラスの新しいインスタンスを初期化します。Initializes a new instance of the ActivatedClientTypeEntry class with the given type name, assembly name, and application URL.

ActivatedClientTypeEntry(Type, String) ActivatedClientTypeEntry(Type, String) ActivatedClientTypeEntry(Type, String) ActivatedClientTypeEntry(Type, String)

指定した ActivatedClientTypeEntry とアプリケーションの URL を使用して、Type クラスの新しいインスタンスを初期化します。Initializes a new instance of the ActivatedClientTypeEntry class with the given Type and application URL.

プロパティ

ApplicationUrl ApplicationUrl ApplicationUrl ApplicationUrl

型をアクティブにするアプリケーションの URL を取得します。Gets the URL of the application to activate the type in.

AssemblyName AssemblyName AssemblyName AssemblyName

リモート アクティブ型になるように構成されたオブジェクト型のアセンブリ名を取得します。Gets the assembly name of the object type configured to be a remote-activated type.

(Inherited from TypeEntry)
ContextAttributes ContextAttributes ContextAttributes ContextAttributes

クライアント側でアクティブ化される型のコンテキスト属性を取得または設定します。Gets or sets the context attributes for the client-activated type.

ObjectType ObjectType ObjectType ObjectType

クライアント側でアクティブ化される型の Type を取得します。Gets the Type of the client-activated type.

TypeName TypeName TypeName TypeName

リモート アクティブ型になるように構成されたオブジェクト型の完全な型名を取得します。Gets the full type name of the object type configured to be a remote-activated type.

(Inherited from TypeEntry)

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
ToString() ToString() ToString() ToString()

クライアント側でアクティブ化される型の型名、アセンブリ名、およびアプリケーションの URL を String として返します。Returns the type name, assembly name, and application URL of the client-activated type as a String.

適用対象

こちらもご覧ください