Ci-dessous est un exemple de code écrit par un collègue. Cela semble évidemment mauvais pour moi, mais je voulais vérifier. Si un appel de l'objet de sa propre Dispose() méthode à partir de l'un de ses propres méthodes? Il me semble que seul le propriétaire/créateur de l'objet devrait appeler Dispose() quand il est fait avec l'objet et non l'objet lui-même.
C'est un .web asmx méthode qui appelle Dispose() sur lui-même quand il est fait. (Le fait que c'est une méthode web est probablement l'accessoire à la question en général.) Dans notre base de code nous avons parfois instancier web les classes de service au sein des méthodes autres que les services web et ensuite appeler des méthodes sur eux. Si mon code n'a qu'à appeler cette méthode, l'objet est grillé quand le retour de la méthode et je ne peux pas vraiment utiliser l'objet de plus.
[WebMethod]
public string MyWebMethod()
{
try
{
return doSomething();
}
catch(Exception exception)
{
return string.Empty;
}
finally
{
Dispose(true);
}
}
Mise à JOUR: Trouvé quelques liens qui sont liés:
Ai-je besoin de disposer d'un service web de référence dans ASP.NET?