Problemi di progettazione avanzata

Poiché le informazioni relative a un tipo remoto sono richieste dal client, risulta spesso più semplice distribuire la libreria dei tipi remoti sul client per utilizzarla come libreria di metadati. In molti casi, tuttavia, è opportuno non consentire a tutti i client l'accesso all'implementazione del tipo. Il problema può essere risolto in vari modi.

  • Generare un client isolato mediante lo strumento Soapsuds (Soapsuds.exe), come descritto nell'argomento Client isolati. Questa soluzione funziona solo con l'oggetto HttpChannel.

  • Distribuire sul client un assembly di soli metadati con nome e informazioni sui tipi uguali a quelli dell'assembly del server, quindi disattivare il controllo della versione o lasciare vuote le versioni.

  • Dichiarare un'interfaccia in una libreria separata e distribuire tale libreria con il client. Pubblicare una classe server che implementi l'interfaccia: il client sarà così in grado di utilizzarla mediante l'acquisizione di un proxy sull'interfaccia implementata.

    Nota   È necessario che il client chiami il metodo Activator.GetObject per acquisire il proxy. Se si chiama new (New in Visual Basic), verrà generato un errore della fase di compilazione: impossibile creare un'istanza di un'interfaccia.

  • Generare una classe wrapper remotizzabile per la classe reale. Pubblicare e distribuire la libreria di wrapper, in modo che il client non abbia accesso all'oggetto reale.

Vedere anche

Comunicazione remota avanzata | Client isolati