Problemi di progettazione avanzata
Poiché le informazioni relative a un tipo remoto sono necessarie per il 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.
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. In questo modo il client sarà in grado di utilizzare la classe mediante l'acquisizione di un proxy sull'interfaccia implementata.
Nota
È necessario che il client chiami il metodo Activator.GetObject per acquisire il proxy. Se viene chiamato new (New in Visual Basic), verrà generato un errore in fase di compilazione relativo all'impossibilità di 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 sia in grado di accedere all'oggetto reale.