Idealmente, entrambi. Nell'interfaccia, puoi descrivere il comportamento previsto dell'interfaccia e nella classe puoi descrivere il comportamento dell'implementazione .
Ovviamente, questa è una enorme quantità di overkill e duplicazione in molti casi, nel qual caso suggerirei documentare solo nell'interfaccia , principalmente perché nella maggior parte dei casi questo è ciò che sarebbe esposto in Intellisense.
La documentazione delle classi è davvero una preoccupazione solo se durante l'elaborazione interagirai sia con l'interfaccia che con le classi.
public interface ILoanApplicationRepository
{
/// <summary>
/// Gets the next available application ID.
/// </summary>
public int GetNextApplicationId();
}
public class HttpLoanApplicationRepository : ILoanApplicationRepository
{
/// <summary>
/// Gets the next available application via /REST/Ids/Next
/// </summary>
public int GetNextApplicationId()
{
var req = WebRequest.Create("http://server/REST/IDs/Next");
//etc., etc.
}
}