Me gustaría agregar partes del código fuente a la documentación XML. Podría copiar el código fuente & pasta hasta cierto < código > elementos, como este:¿Cómo hacer que el código fuente sea parte de la documentación XML y no violar DRY?
/// <summary>
/// Says hello world in a very basic way:
/// <code>
/// System.Console.WriteLine("Hello World!");
/// System.Console.WriteLine("Press any key to exit.");
/// System.Console.ReadKey();
/// </code>
/// </summary>
static void Main()
{
System.Console.WriteLine("Hello World!");
System.Console.WriteLine("Press any key to exit.");
System.Console.ReadKey();
}
mantenimiento de esta va a ser doloroso. ¿Hay otras posibilidades para agregar código fuente a la documentación XML en C#?
Estoy procesando la documentación XML con Sandcastle y me gustaría hacer un archivo de ayuda técnica (* .chm) fuera de ella. Me gustaría agregar partes o completar los cuerpos del método al archivo de ayuda.
EDIT: Gracias por el comentario de slide_rule. He añadido un ejemplo más realista y menos trivial:
Supongamos que tengo algún método como este:
public decimal CalculateFee(Bill bill)
{
if (bill.TotalSum < 5000) return 500;
else
{
if (bill.ContainsSpecialOffer) return bill.TotalSum * 0.01;
else return bill.TotalSum * 0.02;
}
}
Sería bueno tener una posibilidad de agregar la información de cómo se calcula la cuota en la técnica archivo de ayuda.
La solución más obvia sería escribir el algoritmo como texto prosaico en el comentario como: "Si la factura tiene una suma total inferior a 5000, entonces ...".
Otra solución sería copiar & pegar el cuerpo del método en el campo de comentario y ponerlo en un < elemento de código >. Este cuerpo de método se puede entender con bastante facilidad, incluso sin mucho conocimiento sobre C#, por lo que no hay nada de malo en ponerlo en un archivo de ayuda técnica.
¡Ambas soluciones infringen el principio DRY! Me gustaría agregar cuerpos de método o partes de un cuerpo de método en el archivo de ayuda, sin duplicar información.
¿Es esto posible en C#? (Creo RDoc para Ruby es capaz de hacer esto, pero necesito un poco de solución en C#)
Me parece que eres luchando contra el propósito de la documentación XML: si lo entiendo correctamente, el doc XML es más sobre la documentación API que sobre la aplicación o la documentación técnica. ¿Podría darnos un ejemplo menos trivial de lo que está tratando de hacer? – decitrig
Gracias por esa pista ... puede que esa sea la razón por la que nadie responde. ;-) –
Yo "documentaría" el archivo de ayuda técnica usando casos de prueba unitarios. Dado que los desarrolladores serán quienes lo lean, la prueba unitaria proporcionará la mejor y más cierta forma de definir las cosas en el código. –