If my class uses disposable resource in it's constructor (DbConnection
if it matters) should I implement IDisposable
in my class and dispose DbConnection
object, or let user handle disposal of DbConnection
?
Currently I implement IDisposable in my class, but now I see some possible negative effects: clutters class design, double disposal of DbConnection
if used incorrectly. But there are also positive ones: simplier use is the major one (especially if you use multiple disposable parameters).
In the "wild" I see both approaches, so I can't decide..
Update: Thanks everyone for answers, which, in fact, showed that it's indeed not an simple choice sometimes. And it's hard to pick correct answer too. However I decided to stick to most simple one to follow in future. So final choice is: do not implement IDisposable.
It should be disposed by whoever created it - the same scope as its creation. You create an object, you're responsible for disposing it. Simple as that.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With