Is it bad if I dispose IDisposable field in destructor? I have a design like this:  

    public abstract class A
    {
        protected abstract IDisposable FieldName { get; }
        // other functions using the field
        ~A()
        {
            FieldName.Dispose();
        }
    }
    public class B : A
    {
        protected override IDisposable FieldName =&gt; new Something();
    }

I called it `IDisposable` here for simplicity, this is in fact another interface inheriting `IDisposable` and has other things.  
I didn't have the destructor before but I realized I am leaving the "field" undisposed, the only solution that came to mind was to call it in the destructor but I'm wondering if that is the best approach?