Defining the object outside of the using block has nothing to do with it. The compiler will do this anyway when it converts the using to a try/finally block. The problem is a misunderstanding between disposal and collection. Calling Dispose does not release any managed memory. The GC will do that when it runs a collection and determines that the object is no longer referenced.
Scott Dorman
Microsoft® MVP - Visual C# | MCPD President - Tampa Bay IASA [Blog][Articles][Forum Guidelines]
Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai