Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo RemotingConfiguration.RegisterActivatedServiceType (Type)

 

Registra un tipo di oggetto specificato alla fine del servizio come un tipo che può essere attivato su richiesta da un client.

Spazio dei nomi:   System.Runtime.Remoting
Assembly:  mscorlib (in mscorlib.dll)

[SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.RemotingConfiguration)]
public static void RegisterActivatedServiceType(
	Type type
)

Parametri

type
Type: System.Type

Il Type dell'oggetto da registrare.

Exception Condition
SecurityException

Almeno uno dei chiamanti nello stack di chiamate non dispone dell'autorizzazione per configurare i tipi e canali remoti.

Per creare un'istanza di un oggetto attivato dal client nel server, è necessario conoscere il Type e deve essere registrata sul lato server tramite il RegisterActivatedServiceType metodo. Per ottenere un proxy per una nuova istanza dell'oggetto attivato dal client, il client deve innanzitutto registrare un canale con ChannelServices e quindi attivare l'oggetto chiamando new o Activator.CreateInstance.

Per attivare un tipo di oggetto attivato dal client con il new (parola chiave), è innanzitutto necessario registrare il tipo dell'oggetto sul lato client utilizzando il RegisterActivatedClientType metodo. La chiamata di RegisterActivatedClientType metodo fornisce l'infrastruttura .NET remoting la posizione dell'applicazione remota, in cui new tenterà di crearla. Se, d'altra parte, si utilizza il CreateInstance metodo per creare una nuova istanza dell'oggetto attivato dal client, è necessario fornire l'URL dell'applicazione remota come parametro, in modo che venga richiesta alcuna registrazione preventiva sul lato client. Per fornire il CreateInstance metodo con l'URL del server in cui si desidera creare l'oggetto, è necessario incapsulare l'URL in un'istanza della UrlAttribute classe.

Per una descrizione dettagliata degli oggetti attivati dal client, vedere [<topic://cpconClientActivation>].

Esempio di codice seguente viene illustrata la registrazione di un tipo di oggetto nel server come un tipo che può essere attivato dal client. Per il codice client corrispondente al codice server presentato, vedere l'esempio per il RegisterActivatedClientType metodo.

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

public class ServerClass {

    public static void Main()  {

        ChannelServices.RegisterChannel(new TcpChannel(8082));

        RemotingConfiguration.RegisterActivatedServiceType(typeof(HelloServiceClass));

        Console.WriteLine("Press enter to stop this process.");
        Console.ReadLine();
    }
}

Esempio di codice seguente viene illustrato l'oggetto servizio registrato nell'esempio di codice riportato sopra.

using System;

public class HelloServiceClass : MarshalByRefObject {

    static int n_instance;

    public HelloServiceClass() {
        n_instance++;
        Console.WriteLine(this.GetType().Name + " has been created.  Instance # = {0}", n_instance);
    }


    ~HelloServiceClass() {
        Console.WriteLine("Destroyed instance {0} of HelloServiceClass.", n_instance);
        n_instance --;
    }


    public String HelloMethod(String name) {

        // Reports that the method was called.
        Console.WriteLine();
        Console.WriteLine("Called HelloMethod on instance {0} with the '{1}' parameter.", 
                             n_instance, name);

        // Calculates and returns the result to the client.
        return "Hi there " + name + ".";
    }
}

SecurityPermission

for configuration of the remoting infrastructure. Demand value: F:System.Security.Permissions.SecurityAction.Demand; Permission value: F:System.Security.Permissions.SecurityPermissionFlag.RemotingConfiguration

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: