Question rapide, mais est-ce la meilleure pratique pour envelopper une classe de proxy de service dans une instruction using? En VS, nous avons généré un proxy pour un service WCF. Pour la classe de service, devrait-il être enveloppé dans l'utilisation? Je ne crois pas qu'il implémente IDisposable et il n'y a pas de méthode Dispose(). Merci.Enveloppant une classe de proxy de service .NET WCF dans un bloc USING {}?
1
A
Répondre
4
Bien que proxies générés par le service de référence et svcutil.exe font mettre en œuvre IDisposable
, en général, il est pas une meilleure pratique pour les envelopper dans un bloc using
; préférer plutôt ouvrir et fermer explicitement.
Pourquoi? Eh bien, le problème est que la méthode Dispose
appelle Close
, qui peut lancer dans diverses circonstances, le plus en évidence si le canal est dans un état Faulted. En général, cela est mauvais, mais si cela se produit au cours d'un bloc finally, car vous laissez une exception d'erreur monter en flèche, l'exception Close
peut être annulée, perdant ainsi l'exception d'origine.
Questions connexes
- 1. .net WCF: Comment déboguer une classe proxy
- 2. utilisation de 'using' dans .NET
- 3. Proxy IIS pour un service WCF hébergé du service Windows
- 4. Proxy client WCF pour client ASP .NET
- 5. Génération de proxy WCF
- 6. 2.0 Proxy de service Web pour le service WCF
- 7. Hériter d'une classe dans un service wcf
- 8. Comment créer une classe "proxy" pour un service Web dans Eclipse for Java?
- 9. Comment faire pour attraper une exception dans un bloc using avec .NET 2.0?
- 10. Vérifier le service WCF sans créer de proxy client
- 11. .net 4 Service de routage WCF + REST
- 12. L'utilisation de Reflection.Emit pour émettre un bloc "using (x) {...}"?
- 13. Comment créer une classe proxy WCF donné wsdl fichier
- 14. WCF Classes proxy supplémentaires
- 15. Régénération du proxy pour le service WCF
- 16. Classes de proxy JavaScript pour les objets composés dans WCF
- 17. appelant une méthode d'objet de service WCF dans un autre service WCF
- 18. Classe de proxy Web Service pour implémenter l'interface
- 19. classe de tests unitaires dans un service Web en .net
- 20. WCF Service Reference crée une deuxième classe
- 21. type de classe du service WCF
- 22. Propriétés dans le service WCF .NET
- 23. classe wcf implémentant plusieurs contrats de service
- 24. Test de la classe DataAccess basée sur le service WCF
- 25. Passer un objet proxy asyncState dans WCF
- 26. Quartz .Net Job appelant le service WCF
- 27. Forcer le service Web .NET à utiliser la classe d'objets locale, et non la classe proxy
- 28. Exception de service WCF
- 29. Traitement du proxy WCF Proxy null Retour
- 30. importateur de schéma Classe d'extension dans le service web .net
Habituellement, je n'ouvre et ne ferme pas explicitement. Habituellement, j'initialise le service et invoque des méthodes dessus - ne fermant jamais à la fin. Je le vois beaucoup aussi. Mauvaise pratique? –
@Ryan Peters: si vous utilisez un bloc 'using', ce ne serait pas une mauvaise pratique, à part le problème que j'ai mentionné. Mais vous devez toujours fermer votre canal lorsque vous ne l'utilisez pas, explicitement ou implicitement. Explicitement * l'ouverture * du canal, d'autre part, n'est pas toujours nécessaire, car le premier appel d'opération sur le proxy ouvrira toujours le canal. – Randolpho