RemotingConfiguration.RegisterActivatedClientType Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Registra un oggetto Type sul lato client come tipo attivabile sul server.
Overload
RegisterActivatedClientType(ActivatedClientTypeEntry) |
Registra un oggetto Type registrato nell'oggetto ActivatedClientTypeEntry specificato sul lato client come tipo attivabile sul server. |
RegisterActivatedClientType(Type, String) |
Registra un oggetto Type sul lato client come tipo attivabile sul server utilizzando i parametri specificati per inizializzare una nuova istanza della classe ActivatedClientTypeEntry. |
RegisterActivatedClientType(ActivatedClientTypeEntry)
Registra un oggetto Type registrato nell'oggetto ActivatedClientTypeEntry specificato sul lato client come tipo attivabile sul server.
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)
Parametri
- entry
- ActivatedClientTypeEntry
Impostazioni di configurazione per il tipo attivato dal client.
Eccezioni
Almeno uno dei chiamanti in posizione più elevata nello stack di chiamate non dispone delle autorizzazioni alla configurazione di canali e tipi remoti.
Commenti
Per creare un'istanza di un oggetto attivato dal client nel server, è necessario conoscerne e registrarla Type sul server finale usando il RegisterActivatedServiceType metodo . Per ottenere un proxy per una nuova istanza dell'oggetto attivato dal client, il client deve prima registrare un canale con ChannelServices e quindi attivare l'oggetto chiamando new
.
Per attivare un tipo di oggetto attivato dal client con la new
parola chiave , è prima necessario registrare il tipo di oggetto sul lato client usando il RegisterActivatedClientType metodo . La chiamata al metodo fornisce all'infrastruttura RegisterActivatedClientType remota la posizione dell'applicazione remota in cui new
tenta di crearla. Se invece si usa il Activator.CreateInstance metodo per creare una nuova istanza dell'oggetto attivato dal client, è necessario specificare l'URL dell'applicazione remota come parametro, quindi non è necessaria alcuna registrazione precedente sul lato client. Per specificare il Activator.CreateInstance metodo con l'URL del server in cui si vuole creare l'oggetto, è necessario incapsulare l'URL in un'istanza della UrlAttribute classe .
Per una descrizione dettagliata degli oggetti attivati dal client, vedere Attivazione client.
Vedi anche
Si applica a
RegisterActivatedClientType(Type, String)
Registra un oggetto Type sul lato client come tipo attivabile sul server utilizzando i parametri specificati per inizializzare una nuova istanza della classe ActivatedClientTypeEntry.
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)
Parametri
- appUrl
- String
URL dell'applicazione in cui è attivato questo tipo.
Eccezioni
Il parametro typeName
o il parametro URI
è null
.
Almeno uno dei chiamanti in posizione più elevata nello stack di chiamate non dispone delle autorizzazioni alla configurazione di canali e tipi remoti.
Esempio
Nell'esempio di codice seguente viene illustrata la registrazione di un tipo di oggetto sul lato client come tipo che può essere attivato nel server. Per il codice del server corrispondente al codice client presentato, vedere l'esempio per il RegisterActivatedServiceType metodo .
#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
Commenti
Per creare un'istanza di un oggetto attivato dal client nel server, è necessario conoscerne e registrarla Type sul server finale usando il RegisterActivatedServiceType metodo . Per ottenere un proxy per una nuova istanza dell'oggetto attivato dal client, il client deve prima registrare un canale con ChannelServices e quindi attivare l'oggetto chiamando new
.
Per attivare un tipo di oggetto attivato dal client con la new
parola chiave , è prima necessario registrare il tipo di oggetto sul lato client usando il RegisterActivatedClientType metodo . La chiamata al metodo fornisce all'infrastruttura RegisterActivatedClientType remota la posizione dell'applicazione remota in cui new
tenta di crearla. Se invece si usa il Activator.CreateInstance metodo per creare una nuova istanza dell'oggetto attivato dal client, è necessario specificare l'URL dell'applicazione remota come parametro, quindi non è necessaria alcuna registrazione precedente sul lato client. Per specificare il Activator.CreateInstance metodo con l'URL del server in cui si vuole creare l'oggetto, è necessario incapsulare l'URL in un'istanza della UrlAttribute classe .
Per una descrizione dettagliata degli oggetti attivati dal client, vedere Attivazione client.