Declare IDisposable para a classe ou interface?

A partir da situação seguinte:

public interface ISample
{
}

public class SampleA : ISample
{
   // has some (unmanaged) resources that needs to be disposed
}

public class SampleB : ISample
{
   // has no resources that needs to be disposed
}

A classe SampleA deve implementar a interface IDisposable para liberar recursos. Você poderia resolver isso de duas maneiras:

1. Adicione a interface necessária à classe SampleA:

public class SampleA : ISample, IDisposable
{
   // has some (unmanaged) resources that needs to be disposed
}

2. Adicione-o à interface ISample e force as classes derivadas a implementá-lo:

public interface ISample : IDisposable
{
}

Se você colocá-lo na interface, forçará qualquer implementação a implementar IDisposable, mesmo que eles não tenham nada para descartar. Por outro lado, é muito claro que a implementação concreta de uma interface requer um bloco de descarte / uso e você não precisa converter como IDisposable para limpeza. Pode haver mais alguns prós / contras em ambos os sentidos ... por que você sugeriria usar um caminho preferido para o outro?