Quand faire appel à WebResponse.Close()
WebResponse response;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = 20000;
response = request.GetResponse();
request = (HttpWebRequest)WebRequest.Create(url2);
response = request.GetResponse();
}
catch(Exception ex)
{
//do something
}
finally
{
}
où doit répondre.Close() s'appelle?
- après chaque GetResponse() en essayer?
- après la dernière GetResponse() en essayer une fois?
- dans le bloc finally?
OriginalL'auteur Sameet | 2009-07-26
Vous devez vous connecter pour publier un commentaire.
Aucun des ci-dessus. Vous devriez être en utilisant un
using
bloc:Un
using
bloc permettra de s'assurer que la méthode dispose est appelé, s'il existe ou non une exception. Disposer va faire la même chose que de le Fermer.est équivalent à:
Assurément, ce doit être faisable sans l'aide de "l'aide", juste la norme try catch finally blocs?
Est-il obligatoire de disposer de WebResponse exemple? Je ne vois pas en disposer dans Vs2008 de l'intellisense.
Hmm quand j'utilise ILSpy (au lieu de .$$$ Réflecteur) je vois une interface IDisposable. La seule chose que jeter n'est exécuté Close().
est-ce que la réponse à votre question? Ma réponse est: si elle met en œuvre IDisposable, et si vous l'avez créé, vous devez l'Éliminer.
OriginalL'auteur John Saunders
Le mettre dans le bloc finally. Comme par MSDN:
OriginalL'auteur marco0009
Noter que imbriquées à l'aide de blocs n'ont pas besoin d'accolades, et améliore la lisibilité. Ainsi, Jean Saunder du code peut être écrit:
VS.NET comprend que de tels blocs imbriqués n'avez pas besoin de mise en retrait. Note btw que si vous connaissez le codage de la réponse ou de l'ignorer, de toute façon, WebClient fournit une API simple manquants informations d'en-tête, afin de l'en-Tête (transfert/texte) codant pour la détection devient impossible, mais sinon il fonctionne très bien.
Pour de courts morceaux de code peut-être - réel des fichiers, l'ajout de ces accolades inutiles sur des lignes redondantes signifie que votre code devient de plus en plus et les moins qui s'adapte sur un seul écran, ce qui signifie que vous aurez moins de vue d'ensemble. La véritable astuce de toute façon devrait être de l'indentation, et VS.NET automatiquement tirets du code non-confusion de la mode.
OriginalL'auteur Eamon Nerbonne