tags:

views:

123

answers:

2
IndentedTextWriter tw = new IndentedTextWriter(internalTW, "    ");

Object referenced by 'tw' is lost, but related resources are not disposed here "TW " is a text writer where internalTW is a TextWriter

 OleDbConnection con = new OleDbConnection(conStr);
 OleDbCommand cmd = new OleDbCommand(cmd1, con);

object referenced by 'cmd' is lost, but related resources are not disposed here

+3  A: 

Try

using (IndentedTextWriter tw = new IndentedTextWriter(internalTW, "    ")) {
  // use it here
}

resp.

using (OleDbConnection con = new OleDbConnection(conStr))
using (OleDbCommand cmd = new OleDbCommand(cmd1, con)) {
  // use it here
}

At the end of the using block, Dispose() is called on the objects and the resources should be freed...

MartinStettner
+3  A: 

The types all implement IDisposable, and thus it is the caller's responsibility to call Dispose() like e.g.

using(var tw = new IndentedTextWriter(internalTW, "    ")) {
    // do something with tw
}

or by explicitly calling Dispose() in a finally block.

Brian Rasmussen