это, вероятно, лучший шаблон для этого.

л это. Почему явное приведение к IDisposable? Это просто сокращение, чтобы гарантировать, что IDisposable вызывается при выходе из блока using?

using (proxy as IDisposable)
{
  string s = proxy.Stuff()                                    
}

Ответы на вопрос(2)

Ваш ответ на вопрос