RemotingConfiguration.RegisterActivatedClientType Metod

Definition

Registrerar ett objekt Type i klientdelen som en typ som kan aktiveras på servern.

Överlagringar

Name Description
RegisterActivatedClientType(ActivatedClientTypeEntry)

Registrerar ett objekt Type som registrerats i den angivna ActivatedClientTypeEntry klientdelen som en typ som kan aktiveras på servern.

RegisterActivatedClientType(Type, String)

Registrerar ett objekt Type i klientdelen som en typ som kan aktiveras på servern med hjälp av de angivna parametrarna för att initiera en ny instans av ActivatedClientTypeEntry klassen.

RegisterActivatedClientType(ActivatedClientTypeEntry)

Registrerar ett objekt Type som registrerats i den angivna ActivatedClientTypeEntry klientdelen som en typ som kan aktiveras på servern.

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)

Parametrar

entry
ActivatedClientTypeEntry

Konfigurationsinställningar för den klientaktiverade typen.

Undantag

Minst en av anroparna högre i anropsstacken har inte behörighet att konfigurera fjärrkommunikationstyper och kanaler.

Kommentarer

Om du vill skapa en instans av ett klientaktiverat objekt på servern måste du känna till det Type och det måste vara registrerat på serverslutet RegisterActivatedServiceType med hjälp av metoden . För att hämta en proxy för en ny instans av det klientaktiverade objektet måste klienten först registrera en kanal med ChannelServices och sedan aktivera objektet genom att anropa new.

Om du vill aktivera en klientaktiverad objekttyp med nyckelordet new måste du först registrera objekttypen i klientdelen med hjälp av RegisterActivatedClientType metoden . RegisterActivatedClientType Att anropa metoden ger fjärrkommunikationsinfrastrukturen platsen för fjärrprogrammet där new försök görs att skapa den. Om du å andra sidan använder Activator.CreateInstance metoden för att skapa en ny instans av det klientaktiverade objektet måste du ange fjärrprogrammets URL som en parameter, så det krävs ingen tidigare registrering i klientdelen. Om du vill ange Activator.CreateInstance metoden med URL:en för den server där du vill skapa objektet måste du kapsla in URL:en i en instans av UrlAttribute klassen.

En detaljerad beskrivning av klientaktiverade objekt finns i Klientaktivering.

Se även

Gäller för

RegisterActivatedClientType(Type, String)

Registrerar ett objekt Type i klientdelen som en typ som kan aktiveras på servern med hjälp av de angivna parametrarna för att initiera en ny instans av ActivatedClientTypeEntry klassen.

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)

Parametrar

type
Type

Objektet Type.

appUrl
String

URL för programmet där den här typen är aktiverad.

Undantag

Parametern type eller appUrl är null.

Minst en av anroparna högre i anropsstacken har inte behörighet att konfigurera fjärrkommunikationstyper och kanaler.

Exempel

I följande kodexempel visas registrering av en objekttyp i klientdelen som en typ som kan aktiveras på servern. För serverkoden som motsvarar den presenterade klientkoden, se exemplet för RegisterActivatedServiceType metoden.

#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

Kommentarer

Om du vill skapa en instans av ett klientaktiverat objekt på servern måste du känna till det Type och det måste vara registrerat på serverslutet RegisterActivatedServiceType med hjälp av metoden . För att hämta en proxy för en ny instans av det klientaktiverade objektet måste klienten först registrera en kanal med ChannelServices och sedan aktivera objektet genom att anropa new.

Om du vill aktivera en klientaktiverad objekttyp med nyckelordet new måste du först registrera objekttypen i klientdelen med hjälp av RegisterActivatedClientType metoden . RegisterActivatedClientType Att anropa metoden ger fjärrkommunikationsinfrastrukturen platsen för fjärrprogrammet där new försök görs att skapa den. Om du å andra sidan använder Activator.CreateInstance metoden för att skapa en ny instans av det klientaktiverade objektet måste du ange fjärrprogrammets URL som en parameter, så det krävs ingen tidigare registrering i klientdelen. Om du vill ange Activator.CreateInstance metoden med URL:en för den server där du vill skapa objektet måste du kapsla in URL:en i en instans av UrlAttribute klassen.

Se även

Gäller för