Aracılığıyla paylaş


RemotingConfiguration.RegisterActivatedClientType Yöntem

Tanım

İstemci ucundaki bir nesneyi Type sunucuda etkinleştirilebilen bir tür olarak kaydeder.

Aşırı Yüklemeler

RegisterActivatedClientType(ActivatedClientTypeEntry)

İstemci ucunda sağlanan ActivatedClientTypeEntry öğesine kaydedilen bir nesneyi Type sunucuda etkinleştirilebilen bir tür olarak kaydeder.

RegisterActivatedClientType(Type, String)

İstemci ucundaki bir nesneyi Type , sınıfın yeni bir örneğini ActivatedClientTypeEntry başlatmak için verilen parametreleri kullanarak sunucuda etkinleştirilebilen bir tür olarak kaydeder.

RegisterActivatedClientType(ActivatedClientTypeEntry)

İstemci ucunda sağlanan ActivatedClientTypeEntry öğesine kaydedilen bir nesneyi Type sunucuda etkinleştirilebilen bir tür olarak kaydeder.

public:
 static void RegisterActivatedClientType(System::Runtime::Remoting::ActivatedClientTypeEntry ^ entry);
public static void RegisterActivatedClientType (System.Runtime.Remoting.ActivatedClientTypeEntry entry);
static member RegisterActivatedClientType : System.Runtime.Remoting.ActivatedClientTypeEntry -> unit
Public Shared Sub RegisterActivatedClientType (entry As ActivatedClientTypeEntry)

Parametreler

entry
ActivatedClientTypeEntry

İstemci tarafından etkinleştirilen tür için yapılandırma ayarları.

Özel durumlar

Çağrı yığınında daha yüksek arayanlardan en az birinin uzaktan iletişim türlerini ve kanallarını yapılandırma izni yoktur.

Açıklamalar

Sunucuda istemci tarafından etkinleştirilen bir nesnenin örneğini oluşturmak için, nesnesini bilmeniz Type ve yöntemini kullanarak RegisterActivatedServiceType sunucu ucuna 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 istemci ucuna nesne türünü kaydetmeniz gerekir. yöntemini çağırmak RegisterActivatedClientType uzaktan iletişim altyapısına uzak uygulamanın oluşturma girişiminde bulunduğu new konumu verir. Ö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 ayrıntılı açıklaması için bkz. İstemci Etkinleştirme.

Ayrıca bkz.

Şunlara uygulanır

RegisterActivatedClientType(Type, String)

İstemci ucundaki bir nesneyi Type , sınıfın yeni bir örneğini ActivatedClientTypeEntry başlatmak için verilen parametreleri kullanarak sunucuda etkinleştirilebilen bir tür olarak kaydeder.

public:
 static void RegisterActivatedClientType(Type ^ type, System::String ^ appUrl);
public static void RegisterActivatedClientType (Type type, string appUrl);
static member RegisterActivatedClientType : Type * string -> unit
Public Shared Sub RegisterActivatedClientType (type As Type, appUrl As String)

Parametreler

type
Type

nesnesi Type.

appUrl
String

Bu türün etkinleştirildiği uygulamanın URL'si.

Özel durumlar

typeName veya URI parametresidirnull.

Çağrı yığınında daha yüksek arayanlardan en az birinin uzaktan iletişim türlerini ve kanallarını yapılandırma izni yoktur.

Örnekler

Aşağıdaki kod örneği, istemci ucundaki bir nesne türünün sunucuda etkinleştirilebilen bir tür olarak kaydını gösterir. Sunulan istemci koduna karşılık gelen sunucu kodu için yöntem örneğine RegisterActivatedServiceType bakın.

#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;
using namespace System::Runtime::Remoting::Channels::Tcp;

int main()
{
   ChannelServices::RegisterChannel( gcnew TcpChannel );
   RemotingConfiguration::RegisterActivatedClientType( HelloServiceClass::typeid, "tcp://localhost:8082" );
   try
   {
      HelloServiceClass ^ service = gcnew HelloServiceClass;

      // 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" );
    }
    catch (Exception ex)
    {
        Console::WriteLine("An exception occurred: " + ex.Message);
    }
   Console::WriteLine();
   return 0;
}
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

public class ClientClass {

    public static void Main() {

        ChannelServices.RegisterChannel(new TcpChannel());

        RemotingConfiguration.RegisterActivatedClientType(typeof(HelloServiceClass),
                                                   "tcp://localhost:8082");

        try
        {
            HelloServiceClass service = new HelloServiceClass();

           // 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();
        }
    catch (Exception ex)
    {
       Console.WriteLine("An exception occurred: " + ex.Message);
        }
    }
}
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Tcp


Public Class ClientClass
   
   Public Shared Sub Main()
      
      ChannelServices.RegisterChannel(New TcpChannel())
      
      RemotingConfiguration.RegisterActivatedClientType(GetType(HelloServiceClass), "tcp://localhost:8082")
      
      Try
          Dim service As New HelloServiceClass()
      
       
          ' 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")
      Catch ex as Exception
          Console.WriteLine("An exception occurred: " + ex.Message)
      End Try

      Console.WriteLine()

   End Sub

End Class

Açıklamalar

Sunucuda istemci tarafından etkinleştirilen bir nesnenin örneğini oluşturmak için, nesnesini bilmeniz Type ve yöntemini kullanarak RegisterActivatedServiceType sunucu ucuna 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 istemci ucuna nesne türünü kaydetmeniz gerekir. yöntemini çağırmak RegisterActivatedClientType uzaktan iletişim altyapısına uzak uygulamanın oluşturma girişiminde bulunduğu new konumu verir. Ö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 ayrıntılı açıklaması için bkz. İstemci Etkinleştirme.

Ayrıca bkz.

Şunlara uygulanır