Entonces tenemos una interfaz como esta
/// <summary>
/// Interface for classes capable of creating foos
/// </summary>
public interface ICreatesFoo
{
  /// <summary>
  /// Creates foos
  /// </summary>
  void Create(Foo foo);
  /// <summary>
  /// Does Bar stuff
  /// </summary>
  void Bar();
}
Recientemente, reprodujimos una historia de documentación que implicaba generar y garantizar que haya mucha documentación XML como la anterior. Sin embargo, esto causó mucha duplicación de documentación. Implementación de ejemplo:
/// <summary>
/// A Foo Creator which is fast
/// </summary>
public class FastFooCreator : ICreatesFoo
{
  /// <summary>
  /// Creates foos
  /// </summary>
  public void Create(Foo foo)
  {
    //insert code here
  }
  /// <summary>
  /// Does Bar stuff
  /// </summary>
  public void Bar()
  {
    //code here
  }
}
Como puede ver, la documentación del método es una copia directa de la interfaz.
La gran pregunta es, ¿es esto algo malo? Mi instinto me dice que sí debido a la duplicación, pero de nuevo tal vez no.
Además, tenemos otra duplicación de documentación similar con overridefunciones y virtualfunciones.
¿Es esto malo y debe evitarse o no? ¿Vale la pena incluso?

Respuestas:
En general, solo agregaría nueva documentación a los métodos de implementación si hay algo específico sobre esa implementación que deba mencionarse.
En javadoc puede vincular a otros métodos, lo que le permitiría crear un enlace en la implementación a la documentación del método en la interfaz. Creo que así es como se debe hacer en .Net (basado en mi lectura de la documentación en línea, no en mi propia experiencia):
La documentación para el
<see/>elemento: http://msdn.microsoft.com/en-us/library/acd0tfbe.aspxfuente
Collection<T>y quiero anular susCountdocumentos XML de propiedad.