Sdílet prostřednictvím


RemotingConfiguration.RegisterActivatedClientType Metoda

Definice

Zaregistruje objekt Type na straně klienta jako typ, který lze aktivovat na serveru.

Přetížení

Name Description
RegisterActivatedClientType(ActivatedClientTypeEntry)

Zaregistruje objekt Type zaznamenaný v zadaném ActivatedClientTypeEntry klientovi jako typ, který lze aktivovat na serveru.

RegisterActivatedClientType(Type, String)

Zaregistruje objekt Type na straně klienta jako typ, který lze aktivovat na serveru pomocí zadaných parametrů k inicializaci nové instance ActivatedClientTypeEntry třídy.

RegisterActivatedClientType(ActivatedClientTypeEntry)

Zaregistruje objekt Type zaznamenaný v zadaném ActivatedClientTypeEntry klientovi jako typ, který lze aktivovat na serveru.

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

Nastavení konfigurace pro typ aktivovaný klientem.

Výjimky

Alespoň jeden z volajících, kteří jsou ve volání vyšší, nemá oprávnění ke konfiguraci typů vzdálené komunikace a kanálů.

Poznámky

Chcete-li vytvořit instanci objektu aktivovaného klientem na serveru, musíte znát jeho Type a musí být zaregistrována na straně serveru pomocí RegisterActivatedServiceType metody. Chcete-li získat proxy pro novou instanci objektu aktivovaného klientem, klient musí nejprve zaregistrovat kanál s ChannelServices voláním new.

Chcete-li aktivovat typ objektu aktivovaný klientem s klíčovým slovem new , musíte nejprve zaregistrovat typ objektu na straně klienta pomocí RegisterActivatedClientType metody. RegisterActivatedClientType Volání metody dává vzdálené infrastruktuře vzdálené komunikace umístění vzdálené aplikace, kde new se ji pokusí vytvořit. Pokud na druhou stranu použijete Activator.CreateInstance metodu k vytvoření nové instance objektu aktivovaného klientem, musíte jako parametr zadat adresu URL vzdálené aplikace, takže není nutná žádná předchozí registrace na straně klienta. Chcete-li zadat metodu Activator.CreateInstance s adresou URL serveru, kde chcete vytvořit objekt, musíte zapouzdření adresy URL v instanci UrlAttribute třídy.

Viz také

Platí pro

RegisterActivatedClientType(Type, String)

Zaregistruje objekt Type na straně klienta jako typ, který lze aktivovat na serveru pomocí zadaných parametrů k inicializaci nové instance ActivatedClientTypeEntry třídy.

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

Objekt Type.

appUrl
String

Adresa URL aplikace, kde je tento typ aktivován.

Výjimky

Parametr type je appUrlnull.

Alespoň jeden z volajících, kteří jsou ve volání vyšší, nemá oprávnění ke konfiguraci typů vzdálené komunikace a kanálů.

Příklady

Následující příklad kódu ukazuje registraci typu objektu na straně klienta jako typ, který lze aktivovat na serveru. Kód serveru, který odpovídá zobrazenému klientskému kódu, najdete v příkladu 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

Poznámky

Chcete-li vytvořit instanci objektu aktivovaného klientem na serveru, musíte znát jeho Type a musí být zaregistrována na straně serveru pomocí RegisterActivatedServiceType metody. Chcete-li získat proxy pro novou instanci objektu aktivovaného klientem, klient musí nejprve zaregistrovat kanál s ChannelServices voláním new.

Chcete-li aktivovat typ objektu aktivovaný klientem s klíčovým slovem new , musíte nejprve zaregistrovat typ objektu na straně klienta pomocí RegisterActivatedClientType metody. RegisterActivatedClientType Volání metody dává vzdálené infrastruktuře vzdálené komunikace umístění vzdálené aplikace, kde new se ji pokusí vytvořit. Pokud na druhou stranu použijete Activator.CreateInstance metodu k vytvoření nové instance objektu aktivovaného klientem, musíte jako parametr zadat adresu URL vzdálené aplikace, takže není nutná žádná předchozí registrace na straně klienta. Chcete-li zadat metodu Activator.CreateInstance s adresou URL serveru, kde chcete vytvořit objekt, musíte zapouzdření adresy URL v instanci UrlAttribute třídy.

Viz také

Platí pro