RemotingConfiguration.RegisterActivatedClientType Metoda

Definicja

Rejestruje obiekt Type na końcu klienta jako typ, który można aktywować na serwerze.

Przeciążenia

RegisterActivatedClientType(ActivatedClientTypeEntry)

Rejestruje obiekt Type zarejestrowany w podanym ActivatedClientTypeEntry na końcu klienta jako typ, który można aktywować na serwerze.

RegisterActivatedClientType(Type, String)

Rejestruje obiekt Type na końcu klienta jako typ, który można aktywować na serwerze, przy użyciu podanych parametrów w celu zainicjowania nowego wystąpienia ActivatedClientTypeEntry klasy.

RegisterActivatedClientType(ActivatedClientTypeEntry)

Rejestruje obiekt Type zarejestrowany w podanym ActivatedClientTypeEntry na końcu klienta jako typ, który można aktywować na serwerze.

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)

Parametry

entry
ActivatedClientTypeEntry

Ustawienia konfiguracji dla typu aktywowanego przez klienta.

Wyjątki

Co najmniej jeden z wywołujących wyżej w stosie wywołań nie ma uprawnień do konfigurowania typów komunikacji telefonicznej i kanałów.

Uwagi

Aby utworzyć wystąpienie obiektu aktywowanego przez klienta na serwerze, musisz go znać Type i musi być zarejestrowany na końcu serwera przy użyciu RegisterActivatedServiceType metody . Aby uzyskać serwer proxy dla nowego wystąpienia obiektu aktywowanego przez klienta, klient musi najpierw zarejestrować kanał za pomocą ChannelServices polecenia , a następnie aktywować obiekt przez wywołanie metody new.

Aby aktywować typ obiektu aktywowanego przez klienta za pomocą słowa kluczowego new , należy najpierw zarejestrować typ obiektu na końcu klienta przy użyciu RegisterActivatedClientType metody . RegisterActivatedClientType Wywołanie metody zapewnia infrastrukturę komunikacji zdalnej lokalizację aplikacji zdalnej, w której new próbuje ją utworzyć. Jeśli z drugiej strony użyjesz Activator.CreateInstance metody do utworzenia nowego wystąpienia obiektu aktywowanego przez klienta, musisz podać adres URL aplikacji zdalnej jako parametr, więc nie jest konieczna wcześniejsza rejestracja na końcu klienta. Aby podać metodę Activator.CreateInstance przy użyciu adresu URL serwera, na którym chcesz utworzyć obiekt, należy hermetyzować adres URL w wystąpieniu UrlAttribute klasy.

Aby uzyskać szczegółowy opis obiektów aktywowanych przez klienta, zobacz Aktywacja klienta.

Zobacz też

Dotyczy

RegisterActivatedClientType(Type, String)

Rejestruje obiekt Type na końcu klienta jako typ, który można aktywować na serwerze, przy użyciu podanych parametrów w celu zainicjowania nowego wystąpienia ActivatedClientTypeEntry klasy.

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)

Parametry

type
Type

Obiekt Type.

appUrl
String

Adres URL aplikacji, w której jest aktywowany ten typ.

Wyjątki

Parametr typeName or URI to null.

Co najmniej jeden z wywołujących wyżej w stosie wywołań nie ma uprawnień do konfigurowania typów komunikacji telefonicznej i kanałów.

Przykłady

Poniższy przykład kodu przedstawia rejestrację typu obiektu na końcu klienta jako typ, który można aktywować na serwerze. Aby uzyskać kod serwera odpowiadający przedstawionemu kodowi klienta, zobacz przykład RegisterActivatedServiceType metody .

#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

Uwagi

Aby utworzyć wystąpienie obiektu aktywowanego przez klienta na serwerze, musisz go znać Type i musi być zarejestrowany na końcu serwera przy użyciu RegisterActivatedServiceType metody . Aby uzyskać serwer proxy dla nowego wystąpienia obiektu aktywowanego przez klienta, klient musi najpierw zarejestrować kanał za pomocą ChannelServices polecenia , a następnie aktywować obiekt przez wywołanie metody new.

Aby aktywować typ obiektu aktywowanego przez klienta za pomocą słowa kluczowego new , należy najpierw zarejestrować typ obiektu na końcu klienta przy użyciu RegisterActivatedClientType metody . RegisterActivatedClientType Wywołanie metody zapewnia infrastrukturę komunikacji zdalnej lokalizację aplikacji zdalnej, w której new próbuje ją utworzyć. Jeśli z drugiej strony użyjesz Activator.CreateInstance metody do utworzenia nowego wystąpienia obiektu aktywowanego przez klienta, musisz podać adres URL aplikacji zdalnej jako parametr, więc nie jest konieczna wcześniejsza rejestracja na końcu klienta. Aby podać metodę Activator.CreateInstance przy użyciu adresu URL serwera, na którym chcesz utworzyć obiekt, należy hermetyzować adres URL w wystąpieniu UrlAttribute klasy.

Aby uzyskać szczegółowy opis obiektów aktywowanych przez klienta, zobacz Aktywacja klienta.

Zobacz też

Dotyczy