lundi 22 juin 2009

Silverlight et WCF ... pour être propre !

L'utilisation d'un canal de communication WCF par une appli silverlight nécessite un appel asynchrone, et donc, l'abonnement à l'évènement blablablaComplete.

Lors de l'appel de la méthode blablabla, nous pouvons passer en paramètre l'objet proxy afin d'effectuer des opérations de nettoyage (pour être plus propre) :
CloseAsync( ) et le désabonnement à l'évènement.

Exemple :




// méthode sur l'évènement complete (sous la forme d'une expression lambda)
EventHandler
methodComplete = null;

// Proxy pour l'appel WCF
SrvDatasClient proxy = AppDataHelper.GetProxy();

// définition de la méthode lambda
methodComplete = (ssender, ee) =>
{

// traitement du retour

//ee.UserState contient le proxy
(ee.UserState as SrvDatasClient).SaveCompleted -= methodComplete; // plus propre
(ee.UserState as SrvDatasClient).CloseAsync(); // super plus propre


};

proxy.GetAllCompleted += methodComplete;
proxy.GetAllAsync(proxy); // appel ou je passe en param le proxy



C'est toujours plus propre de fermer ce que l'on utilise ...

Aucun commentaire:

Enregistrer un commentaire