2010-07-06 23 views
0

Au début, je les traite comme tout les faisant passer la dépendance dans le cteur à la classe consommer le service:comment créer et gérer les clients du service wcf?

var serviceConsumer = new ServiceConsumer(new MailingServiceClient()) 

Le problème est qu'une fois qu'une exception a été lancée par le service, il est entré dans un état de défaut et ne répondrait pas à toutes les demandes, donc la réinitialisation était due. De plus, je me suis familiarisé avec le fait que les services de wcf peuvent ne pas être éliminés correctement à plusieurs reprises, parce que la méthode d'élimination du proxy généré est interrompue (appels fermés sans vérifier l'état de panne) pour surmonter que:

  1. wrapping every call to every service.
  2. override the default IDisposable behavior of the scvutil.exe-generated class

Depuis que je ne voudrais pas que le code de la consommation pour créer le client de service lui-même pour des raisons de test, mon Les questions sont les suivantes:

  • Comment puis-je maintenir un service fonctionnel sans défaut? Comment puis-je toujours utiliser l'injection de dépendance pour la testabilité?

+0

Voici le deuxième lien http://blog.davidbarrett.net/archive/2007/11.aspx – AlonEl

+0

Il devrait y avoir beaucoup de hits lorsque vous effectuez une recherche "WCF client dépendance injection" - juste google ou bing et aller de Là! –

Répondre

0

Trouvé une belle solution.

un générateur de proxy qui remplace le VS et génère un wrapper autour du proxy par défaut qui traite les fautes de proxy, les délais d'attente et la mise au rebut correcte.

http://wcfproxygenerator.codeplex.com/

semble fonctionner très bien pour moi.