抛出ObjectDisposedException时,应该作为objectName传递什么?

在实现IDisposable时,我承诺在对象被处理后不应该调用的每个方法都应该抛出ObjectDisposedException 。 但是,应该传递给exception的构造函数的name对象的标准是什么?

我相信推荐的做法是抛出以下内容:

 throw new ObjectDisposedException(GetType().FullName); 

或者包括检查,这两行代码在每个方法的顶部需要它(显然不是Dispose方法本身):

 if (this.disposed) throw new ObjectDisposedException(GetType().FullName); 

甚至可能有助于将其重构为可用性的微小方法。

即使是.NET框架本身在这里也不是很一致。

David M. Kean(Microsoft的FxCop团队的前开发人员) 为ObjectDisposedException的MSDN文档添加了一条评论:

这种types的典型用法如下所示:

 [C#] private void CheckDisposed() { throw new ObjectDisposedException(GetType().FullName); } 

我不相信这是一个标准,我会返回对象的types以及唯一标识字段的string内容(“主键”)。