Ho inserito un'istanza del proxy client per il servizio WCF in una proprietà della classe App in modo da poterla ottenere da qualsiasi punto dell'app.Quando chiudere il client WCF?
Non sto chiudendo il client, lo lascio aperto per tutta la durata dell'app. La ragione principale di ciò è che se dovessi seguire il // Comment nella pagina mex del servizio WCF (quella che si ottiene se si punta un browser all'URL del servizio WCF) si dice // Chiude sempre il client. client.Close();
che va bene, tranne se chiamo client.Close() subito dopo faccio una chiamata al metodo client.SomeAsync() quindi viene chiuso prima che i risultati tornino. Dovrei mettere la chiusura nel metodo Completed()? O dovrei semplicemente dimenticarmi di chiuderlo, poiché una volta chiuso devo creare una nuova istanza del proxy client (potrebbe anche non memorizzarlo nell'app.property se è il caso.
grazie, Stephen
Ricordarsi di aggiungere il comando try on close e anche perché close può causare eccezioni. http://msdn.microsoft.com/en-us/library/ms405496.aspx. Lo uso come questo prova { client.Close(); } cattura { client.Abort(); } –
Nota che chiamare Dispose su ClientBase comporterà anche il richiamo di Close. –