Share via


ActivatedClientTypeEntry Sınıf

Tanım

İstemci ucunda, sunucuda etkinleştirilebilen bir tür olarak kayıtlı bir nesne türünün değerlerini tutar.

public ref class ActivatedClientTypeEntry : System::Runtime::Remoting::TypeEntry
public class ActivatedClientTypeEntry : System.Runtime.Remoting.TypeEntry
[System.Runtime.InteropServices.ComVisible(true)]
public class ActivatedClientTypeEntry : System.Runtime.Remoting.TypeEntry
type ActivatedClientTypeEntry = class
    inherit TypeEntry
[<System.Runtime.InteropServices.ComVisible(true)>]
type ActivatedClientTypeEntry = class
    inherit TypeEntry
Public Class ActivatedClientTypeEntry
Inherits TypeEntry
Devralma
ActivatedClientTypeEntry
Öznitelikler

Örnekler

Aşağıdaki kod örneği, istemcinin etkinleştirildiği uzak nesneyi kaydetmek için nasıl kullanılacağını ActivatedClientTypeEntry gösterir. Örnek, istemci, sunucu ve istemci ile sunucu tarafından kullanılan uzak nesne olmak üzere üç bölüm içerir.

Aşağıdaki kod örneği bir istemciyi gösterir:

#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.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
End Class

Aşağıdaki kod örneği bu istemci için bir sunucu gösterir:

#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.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

End Class

Aşağıdaki kod örneği, istemci ve sunucu tarafından kullanılan uzak nesneyi sağlar:

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;
    }
}
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
    
    Public Function HelloMethod(myName As String) As String
        Console.WriteLine("HelloMethod : {0}", myName)
        Return "Hi there " + myName
    End Function 'HelloMethod
End Class

Açıklamalar

İstemcide istemci tarafından etkinleştirilen bir nesnenin örneğini oluşturmak için, nesnesini Type bilmeniz ve yöntemini kullanarak RegisterActivatedClientType istemciye kaydedilmesi gerekir. İstemci tarafından etkinleştirilen nesnenin yeni bir örneği için ara sunucu elde etmek için, istemcinin önce ile ChannelServices bir kanal kaydetmesi ve ardından çağırarak newnesnesini etkinleştirmesi gerekir.

İstemci tarafından etkinleştirilen nesne türünü anahtar sözcüğüyle new etkinleştirmek için, önce yöntemini kullanarak RegisterActivatedClientType istemciye nesne türünü kaydetmeniz gerekir. Çağrısı RegisterActivatedClientType yaparak uzaktan iletişim altyapısına uzaktan erişim altyapısını oluşturma girişiminde bulunduğu new uzak uygulamanın konumunu vermiş olursunuz. Öte yandan, istemci tarafından etkinleştirilen nesnenin yeni bir örneğini oluşturmak için yöntemini kullanırsanız Activator.CreateInstance , uzak uygulamanın URL'sini parametre olarak sağlamanız gerekir, bu nedenle istemci ucunda önceden kayıt yapılması gerekmez. Activator.CreateInstance yöntemini, nesnesini oluşturmak istediğiniz sunucunun URL'sini sağlamak için URL'yi sınıfın UrlAttribute bir örneğinde kapsüllemeniz gerekir.

İstemci tarafından etkinleştirilen nesnelerin ve uzak nesne etkinleştirmenin ayrıntılı açıklaması için bkz . Uzak Nesnelerin Etkinleştirilmesi.

Oluşturucular

ActivatedClientTypeEntry(String, String, String)

Verilen tür adı, derleme adı ve uygulama URL'si ile sınıfının yeni bir örneğini ActivatedClientTypeEntry başlatır.

ActivatedClientTypeEntry(Type, String)

Verilen Type ve uygulama URL'si ActivatedClientTypeEntry ile sınıfının yeni bir örneğini başlatır.

Özellikler

ApplicationUrl

Türü etkinleştirmek için uygulamanın URL'sini alır.

AssemblyName

Uzaktan etkinleştirilmiş bir tür olarak yapılandırılan nesne türünün derleme adını alır.

(Devralındığı yer: TypeEntry)
ContextAttributes

İstemci tarafından etkinleştirilen türün bağlam özniteliklerini alır veya ayarlar.

ObjectType

Type İstemci tarafından etkinleştirilen türün türünü alır.

TypeName

Uzaktan etkinleştirilen bir tür olarak yapılandırılan nesne türünün tam tür adını alır.

(Devralındığı yer: TypeEntry)

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

İstemci tarafından etkinleştirilen türün tür adını, derleme adını ve uygulama URL'sini olarak Stringdöndürür.

Şunlara uygulanır

Ayrıca bkz.