为什么 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()
所以这就是为什么...
这是因为 DbDataReader
的 Dispose
方法将 EditorBrowsableAttribute 设置为 Never 基本上告诉 VS 不显示它。为什么?我不确定。
[EditorBrowsableAttribute(EditorBrowsableState.Never)]
public void Dispose() {
Dispose(true);
}
protected virtual void Dispose(bool disposing) {
if (disposing) {
Close();
}
}
基本上,我有一个 DataTableReader
对象,我正在检查我的代码以确保确实处理了所有一次性物品。
DataTableReader
实现了 IDisposable
,但 IntelliSense 似乎没有接受它:
但是它确实可以与其他一次性 类 一起使用,例如 FileStream
:
那么,是什么原因呢? DataTableReader
是一次性的吧?
DotPeek 为 DataTableReader 的父 class DbDataReader
揭示了这一点:
[EditorBrowsable(EditorBrowsableState.Never)]
public void Dispose()
所以这就是为什么...
这是因为 DbDataReader
的 Dispose
方法将 EditorBrowsableAttribute 设置为 Never 基本上告诉 VS 不显示它。为什么?我不确定。
[EditorBrowsableAttribute(EditorBrowsableState.Never)]
public void Dispose() {
Dispose(true);
}
protected virtual void Dispose(bool disposing) {
if (disposing) {
Close();
}
}