using System; using C = A.D; public class A { public class D : IDisposable { void IDisposable.Dispose () { throw new Exception ("'using' and 'new' didn't resolve C as A+B+C"); } } public class B { class C : IDisposable { void IDisposable.Dispose () { } } public B () { using (C c = new C ()) { } } } public static void Main() { object o = new A.B(); } }