The answer is No. The Dispose method is invoked by the runtime only when the class that implements the IDisposable interface is initialized with a static block setup.
class MyClass : IDisposable
{
public void Dispose()
{
Console.WriteLine("Calling MyClass.Dispose");
}
}
MyClass c = new MyClass();
using(MyClass uc = new MyClass()) {}
output:
Calling MyClass.Dispose //printed only once