Starting from the follwing situation:
public interface ISample { } public class SampleA : ISample { // has some (unmanaged) resources that needs to be di
If you apply the using(){} pattern to all your interfaces it's best to have ISample derive from IDisposable because the rule of thumb when designing interfaces is to favor "ease-of-use" over "ease-of-implementation".
using(){}
ISample
IDisposable