L'SDK del .NET Framework 3.0 offre alcuni tools utili a velocizzare e semplificare la gestione del codice.
Tra le varie funzioni del tool Svcutil.exe c'è quella di generare una classe "client" che possa fare da proxy al contratto esposto da un servizio.
Tale classe "client" implementa l'interfaccia del contratto ed eredita da System.ServiceModel.ClientBase
Questo comporta che l'istanza della classe "client" debba essere fatta necessariamente specificando come parametro almeno il nome dell'endpoint definito nel file di configurazione, creando di fatto un accoppiamento tra file di configurazione e codice compilato.
Se si modifica il codice della classe "client", forzandolo a richiamare il rispettivo costruttore:
public NomeDelServizioClient() : base() {}
è possibile istanziare tale classe anche senza parametri, riferendosi all'endpoint predefinito o all'unico presente nel file di configurazione.
Perchè ho fatto questo: in fase di studio introduttivo dell'architettura di WCF sento il bisogno di comparare i comportamenti dei bindings predefiniti, dei behaviors ecc.. trovandomi di fatto a modificare il .config molte volte ed ogni volta sono obbligato a modificare il codice del client; modificare il costruttore senza parametri mi ha permesso di sfruttare al meglio la filosofia "only config" ma è chiaro che in un progetto reale, con più servizi e più endpoint, richiamare il costruttore senza parametri genera puntalmente un System.InvalidOperationException .
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Astoria e Silverlight, il 13 luglio 2007 alle 10:08
- Microsoft Codename "Astoria" Online Service, il 16 giugno 2007 alle 12:01
- Considerazioni sugli aggiornamenti di WCF introdotti nel .NET Framework 3.5, il 9 giugno 2007 alle 17:17
- dinnernow.net, il 5 febbraio 2007 alle 17:55
- WCF : Privacy Information , il 12 gennaio 2007 alle 18:34