RemotingConfiguration.RegisterActivatedClientType Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- 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.