为什么 IntelliSense 不在 DataTableReader 上提供 Dispose?

Why does IntelliSense not offer Dispose on DataTableReader?

基本上,我有一个 DataTableReader 对象,我正在检查我的代码以确保确实处理了所有一次性物品。

DataTableReader 实现了 IDisposable,但 IntelliSense 似乎没有接受它:

但是它确实可以与其他一次性 类 一起使用,例如 FileStream:

那么,是什么原因呢? DataTableReader一次性的吧?

DotPeek 为 DataTableReader 的父 class DbDataReader 揭示了这一点:

[EditorBrowsable(EditorBrowsableState.Never)]
public void Dispose()

所以这就是为什么...

这是因为 DbDataReaderDispose 方法将 EditorBrowsableAttribute 设置为 Never 基本上告诉 VS 不显示它。为什么?我不确定。

[EditorBrowsableAttribute(EditorBrowsableState.Never)]
public void Dispose() {
    Dispose(true);
}

protected virtual void Dispose(bool disposing) {
    if (disposing) {
        Close();
    }
}

来源:https://referencesource.microsoft.com/#System.Data/System/Data/Common/DbDataReader.cs,f7c2de36229de361