RemotingConfiguration.RegisterActivatedClientType Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zaregistruje objekt Type na straně klienta jako typ, který lze aktivovat na serveru.
Přetížení
RegisterActivatedClientType(ActivatedClientTypeEntry) |
Zaregistruje objekt Type zaznamenaný v zadaném ActivatedClientTypeEntry na straně klienta 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 ActivatedClientTypeEntry parametrů k inicializaci nové instance třídy. |
RegisterActivatedClientType(ActivatedClientTypeEntry)
Zaregistruje objekt Type zaznamenaný v zadaném ActivatedClientTypeEntry na straně klienta 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 výše v nástroji calltack, nemá oprávnění ke konfiguraci typů a kanálů vzdálené komunikace.
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 . Pokud chcete získat proxy pro novou instanci objektu aktivovaného klientem, musí klient nejprve zaregistrovat kanál pomocí ChannelServices a pak aktivovat objekt voláním new
.
Chcete-li aktivovat typ objektu aktivovaný klientem pomocí klíčového new
slova, musíte nejprve zaregistrovat typ objektu na straně klienta pomocí RegisterActivatedClientType metody . Volání metody RegisterActivatedClientType poskytne infrastruktuře vzdálené komunikace umístění vzdálené aplikace, kde new
se ji pokusí vytvořit. Pokud naopak použijete metodu Activator.CreateInstance 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řit adresu URL v instanci UrlAttribute třídy.
Podrobný popis objektů aktivovaných klientem najdete v tématu Aktivace klienta.
Viz také
Platí pro
RegisterActivatedClientType(Type, String)
Zaregistruje objekt Type na straně klienta jako typ, který lze aktivovat na serveru pomocí zadaných ActivatedClientTypeEntry parametrů k inicializaci nové instance 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
- appUrl
- String
Adresa URL aplikace, ve které je tento typ aktivován.
Výjimky
Parametr typeName
nebo URI
je null
.
Alespoň jeden z volajících, kteří jsou výše v nástroji calltack, nemá oprávnění ke konfiguraci typů a kanálů vzdálené komunikace.
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á uvedenému kódu klienta, 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 . Pokud chcete získat proxy pro novou instanci objektu aktivovaného klientem, musí klient nejprve zaregistrovat kanál pomocí ChannelServices a pak aktivovat objekt voláním new
.
Chcete-li aktivovat typ objektu aktivovaný klientem pomocí klíčového new
slova, musíte nejprve zaregistrovat typ objektu na straně klienta pomocí RegisterActivatedClientType metody . Volání metody RegisterActivatedClientType poskytne infrastruktuře vzdálené komunikace umístění vzdálené aplikace, kde new
se ji pokusí vytvořit. Pokud naopak použijete metodu Activator.CreateInstance 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řit adresu URL v instanci UrlAttribute třídy.
Podrobný popis objektů aktivovaných klientem najdete v tématu Aktivace klienta.
Viz také
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro