Impossible d'acceder à la méthode dispose de System.Net.Sockets [Résolu]

Messages postés
43
Date d'inscription
lundi 17 octobre 2005
Dernière intervention
7 mai 2010
- - Dernière réponse : katwes
Messages postés
43
Date d'inscription
lundi 17 octobre 2005
Dernière intervention
7 mai 2010
- 30 oct. 2007 à 17:16
Bonjour,

J'utilise  la classe System.Net.Sockets pour me connecter en telnet.
Mais j'aimerai utiliser la méthode dispose pour libérer toutes les ressources avant de me déconnecter

Elle est définie ainsi:

protected
virtual
void Dispose(
bool disposing);
J'ai une erreur quand j'essaie de l'appeler:

System.Net.Sockets.TcpClient.Dispose(bool)' est inaccessible en raison de son niveau de protection

namespace

service.Tests{

public
class
TelnetConnection{

   TcpClient tcpSocket;

   int TimeOutMs = 100;

   public TelnetConnection(
string Hostname,
int Port){

   tcpSocket =

new
TcpClient(Hostname, Port);

}

}
public void deconnect ()
{
   
   tcpSocket.Dispose(true);
   tcpSocket.Close();
}

Comment puis-je accéder à cette méthode ?

Merci d'avance.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Dernière intervention
19 août 2008
7
3
Merci
Tiens c'est étonnant que Dispose soit en protected...
Je pense que l'appel a Close suffit à libérer les ressources (Close fait certainement lui même appel à Dispose en interne).

Petite précision, dans ton code, dans le cas ou Dispose aurait été effectivement accessible, il aurait fallu mettre l'appel après celui de Close, et non avant (une fois que ton instance est "disposée", elle n'est plus utilisable en théorie)

<hr size="2" width="100%" />
Working as designed
www.nikoui.fr

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 86 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Nikoui
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
54
0
Merci
normal car ta méthode est "protected", met "public" à la place.


 


la meilleur manière de faire est tout de même d'implémenter l'interface IDisposable

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Commenter la réponse de sebmafate
Messages postés
43
Date d'inscription
lundi 17 octobre 2005
Dernière intervention
7 mai 2010
0
Merci
J'avais essayé mais je ne peux pas modifier cette méthode car c'est une méthode systeme.
Commenter la réponse de katwes
Messages postés
43
Date d'inscription
lundi 17 octobre 2005
Dernière intervention
7 mai 2010
0
Merci
Merci beaucoup pour ces précisions, cela m'évitera de faire une erreur la prochaine fois
Commenter la réponse de katwes

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.