كيف تنفذ هذه الفئة idisposable إذا لم يكن لديها طريقة التخلص؟

StackOverflow https://stackoverflow.com/questions/3118861

سؤال

FTPWebResponse تنفذ idisposable ، ولكن ليس لديها طريقة التخلص. كيف يعقل ذلك؟

هل كانت مفيدة؟

المحلول

لديها طريقة التخلص من خلال الميراث ، لكنها تنفيذ صريح. للاتصال بها ، سيكون عليك استخدام

((IDisposable)myObject).Dispose();

أو ، بالطبع ، فقط لفه في using حظر ، كما يفعل الدعوة الصريحة لك.

نصائح أخرى

تم تنفيذه في الفئة الأساسية webresponse ، انظر http://msdn.microsoft.com/en-us/library/system.net.webresponse_methods.aspx

عند تنفيذ interface صراحة ، لن تحصل على الطريقة في القائمة. سيتعين عليك إلقاء هذا الكائن لتنفيذه interface للوصول إلى هذه الطريقة.

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

المرجعي : http://msdn.microsoft.com/en-us/library/ms173157.aspx

يتم تنفيذه في فئة الأساس webresponse

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

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

يرث من System.net.webResponse الذي ينفذ هذه الطرق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top