Question

FtpWebResponse implémente IDisposable, mais il n'a pas Éliminez méthode. Comment est-ce possible?

Était-ce utile?

La solution

Il a le méthode Dispose par héritage, mais il est une mise en œuvre explicite. Pour appeler, vous devez utiliser

((IDisposable)myObject).Dispose();

Ou, bien sûr, juste envelopper dans un bloc using, comme il le fait l'appel explicite pour vous.

Autres conseils

Sa mise en œuvre dans la classe de base WebResponse, consultez http: / /msdn.microsoft.com/en-us/library/system.net.webresponse_methods.aspx

Lorsque vous implémentez un interface explicitement, vous ne recevrez pas la méthode dans la liste. Vous devrez casting cet objet à interface mis en œuvre pour obtenir l'accès à cette méthode.

public class MyClass : IDisposable
{
    void IDisposable.Dispose()
    {
        throw new NotImplementedException();
    }
}

Référence: http://msdn.microsoft.com/en-us /library/ms173157.aspx

Il est mis en œuvre dans la classe de base WebResponse

void IDisposable.Dispose()
{
try
{
    this.Close();
    this.OnDispose();
}
catch
{
}
}

texte alt http://img227.imageshack.us/img227/2428/redgatesnetreflector .png

Il hérite de System.Net.WebResponse qui met en œuvre ces méthodes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top