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
| Nazwa | Opis |
|---|---|
| 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 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 i kanałów komunikacji telefonicznej.
Uwagi
Aby utworzyć wystąpienie obiektu aktywowanego przez klienta na serwerze, musisz go znać Type i musi zostać 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ą polecenia ChannelServices , 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 daje infrastrukturze komunikacji zdalnej lokalizację aplikacji zdalnej, w której new próbuje ją utworzyć. Jeśli z drugiej strony użyjesz Activator.CreateInstance metody w celu utworzenia nowego wystąpienia obiektu aktywowanego przez klienta, musisz podać adres URL aplikacji zdalnej jako parametr, więc nie jest wymagana 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.
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 type or appUrl to null.
Co najmniej jeden z wywołujących wyżej w stosie wywołań nie ma uprawnień do konfigurowania typów i kanałów komunikacji telefonicznej.
Przykłady
W poniższym przykładzie kodu pokazano 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 zostać 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ą polecenia ChannelServices , 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 daje infrastrukturze komunikacji zdalnej lokalizację aplikacji zdalnej, w której new próbuje ją utworzyć. Jeśli z drugiej strony użyjesz Activator.CreateInstance metody w celu utworzenia nowego wystąpienia obiektu aktywowanego przez klienta, musisz podać adres URL aplikacji zdalnej jako parametr, więc nie jest wymagana 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.