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.RegisterWellKnownServiceType (WellKnownServiceTypeEntry)

 

Registra un oggetto Type registrato nell'oggetto fornito WellKnownServiceTypeEntry sul lato servizio come tipo noto.

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

[SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.RemotingConfiguration)]
public static void RegisterWellKnownServiceType(
	WellKnownServiceTypeEntry entry
)

Parametri

entry
Type: System.Runtime.Remoting.WellKnownServiceTypeEntry

Impostazioni di configurazione per il tipo noto.

Exception Condition
SecurityException

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

Qualsiasi client che conosca l'URI di un oggetto noto registrato può ottenere un proxy per l'oggetto registrando il canale preferito con ChannelServices, e l'attivazione dell'oggetto chiamando new o Activator.GetObject (metodo). Per attivare un oggetto noto con new, è innanzitutto necessario registrare il tipo di oggetto noto sul client utilizzando il RegisterWellKnownClientType metodo. La chiamata di RegisterWellKnownClientType metodo fornisce l'infrastruttura .NET remoting la posizione dell'oggetto remoto, che consente il new parola chiave per la sua creazione. Se, d'altra parte, si utilizza il Activator.GetObject per attivare l'oggetto noto, è necessario fornire tale URL dell'oggetto come argomento, in modo che venga richiesta alcuna registrazione preventiva sul lato client.

Quando la chiamata arriva al server, .NET Framework l'URI viene estratto dal messaggio, esamina le tabelle di .NET remoting per individuare il riferimento per l'oggetto che corrisponde all'URI specificato e quindi un'istanza dell'oggetto, se necessario, inoltrare la chiamata di metodo all'oggetto. Se l'oggetto è registrato come SingleCall, verrà eliminato dopo la chiamata al metodo viene completata. Viene creata una nuova istanza dell'oggetto per ogni metodo chiamato. L'unica differenza tra Activator.GetObject e new il primo consente di specificare un URL come parametro, che quest'ultimo Ottiene l'URL dalla configurazione.

L'oggetto remoto stesso non viene creata dal processo di registrazione. Solo questo si verifica quando un client tenta di chiamare un metodo sull'oggetto o si attiva l'oggetto sul lato client.

Per una descrizione dettagliata degli oggetti noti, vedere [<topic://cpconServerActivation>].

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
using System.Runtime.Remoting.Messaging;
using System.Runtime.Serialization;
using System.Security.Permissions;

public class ObjRefExample {

   [PermissionSet(SecurityAction.LinkDemand)]
   public static void Main() {

      ChannelServices.RegisterChannel(new HttpChannel(8090));

      WellKnownServiceTypeEntry wkste = 
         new WellKnownServiceTypeEntry(typeof(RemoteObject), 
                                       "RemoteObject", 
                                       WellKnownObjectMode.Singleton);

      RemotingConfiguration.RegisterWellKnownServiceType( wkste );

      RemoteObject RObj = 
         (RemoteObject)Activator.GetObject(typeof(RemoteObject), 
                                           "http://localhost:8090/RemoteObject");

      LocalObject LObj = new LocalObject();

      RObj.Method1( LObj );

      Console.WriteLine("Press Return to exit...");
      Console.ReadLine();
   }
}

[PermissionSet(SecurityAction.Demand, Name="FullTrust")] 
public class RemoteObject : MarshalByRefObject {

   public void Method1(LocalObject param) {
      Console.WriteLine("Invoked: Method1({0})", param);
   }
}

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: