如果我的类(class)在其构造函数中使用了一次性资源(如果重要,请使用DbConnection
),我应该在我的类(class)中实现IDisposable
并处置DbConnection
对象,还是让用户处理DbConnection
处置?
当前,我在类中实现了IDisposable,但是现在我看到了一些可能的负面影响:困惑的类设计,如果使用不正确,则会重复处理DbConnection
。但也有一些积极的方面:简单的使用是主要的使用(特别是如果您使用多个一次性参数)。
在“狂野”中,我看到了两种方法,所以我无法决定。
更新:
谢谢大家的回答,事实上,这表明有时候确实不是一个简单的选择。而且也很难选择正确的答案。但是,我决定在将来继续遵循最简单的方法。所以最后的选择是:不实现IDisposable。
最佳答案
无论创建者是谁,都应处置它-与创建它的范围相同。创建一个对象,负责处理它。就那么简单。