2010-11-05 12 views
7

Ho un sistema client/server in cui una delle chiamate di servizio chiamate in modo errato sul server deve essere deprecata e sostituita con la nuova chiamata con un nome migliore. Esiste una procedura standard per deprecare la vecchia chiamata di servizio, ad esempio la registrazione del suo utilizzo o la restituzione di un'eccezione o qualcosa del genere?Qual è la pratica standard per la deprecazione di una chiamata di servizio WCF?

grazie, Mark

risposta

9

Non si dovrebbe rinominarlo. È necessario contrassegnarlo come obsoleto con il seguente attributo:

[Obsolete("This is a message describing why this method is obsolete")] 

e indicare qual è il metodo più recente da chiamare.

In questo modo, i client che continuano a utilizzare continueranno a funzionare.

Vale la pena notare che questo attributo nasconderà proprietà/metodi dai metadati del servizio, quindi qualsiasi client/consumatore che crea o aggiorna un riferimento a questo servizio perderà completamente la proprietà/metodo e sarà costretto a non utilizzarlo.

+0

Immagino che non intendevo cambiare nome. Abbiamo creato una chiamata di servizio con un nome migliore e abbiamo lasciato quella precedente. – MStodd

+0

In questo caso contrassegna il vecchio metodo come obsoleto e magari modifica l'implementazione in modo che punti al nuovo codice (se in realtà c'è qualche nuovo codice). Ma non cambiare la firma del metodo. –

+0

Si noti che ObsoleteAttribute non influisce sulle classi proxy client generate da Visual Studio (suppongo sia vero anche per quelle generate da SvcUtil.exe). OSSIA Non fornisce ai tuoi clienti alcuna indicazione che il metodo sia deprecato. – xr280xr

Problemi correlati