c# - visual - ¿Es posible obtener un resumen de la clase en tiempo de ejecución?
xml comments c# (6)
No puede acceder a esos en tiempo de ejecución porque el compilador los considera comentarios.
Sin embargo, si desea utilizar un atributo para especificar información y acceder a ella durante el tiempo de ejecución a través de la reflexión, puede hacerlo.
Consulte Creación de atributos personalizados (Guía de programación de C #) para la creación de atributos y Acceso a atributos con reflexión (Guía de programación de C #) para acceso en tiempo de ejecución.
Ejemplo de MSDN:
Autor.cs:
public class Author : System.Attribute
{
private string name;
public double version;
public Author(string name)
{
this.name = name;
version = 1.0;
}
}
SampleClass.cs:
[Author("H. Ackerman", version = 1.1)]
class SampleClass
{
// H. Ackerman''s code goes here...
}
¿Es posible obtener un resumen de la clase en tiempo de ejecución en C #? Me gustaría obtener un resumen de la clase a través de la reflexión y luego escribirlo en la consola. Por resumen de clase me refiero a los comentarios de resumen antes de la definición de clase, algo como esto:
/// <summary>
/// some description
/// </summary>
class SomeClass
{
}
No sé si estos comentarios están disponibles después de compilar el código, pero si lo están, quizás haya una manera de obtenerlos en el código.
Gracias de antemano por la ayuda.
No, esos comentarios no están incluidos en su ensamblaje compilado.
Visual Studio puede crear un archivo .xml en su carpeta de salida (/ bin / your_project.xml) que contiene esos comentarios. Si su aplicación fuera distribuida con ese archivo xml, entonces podría acceder a ella programáticamente.
No, no están disponibles a través de la reflexión. Ver msdn :
Los comentarios de documentos XML no son metadatos; no se incluyen en el ensamblaje compilado y, por lo tanto, no son accesibles a través de la reflexión.
Puede, si emite un archivo de documentación XML. El proceso implicaría utilizar la reflexión para obtener todos los miembros públicos del tipo, y luego usar XPath, leer la documentación del documento XML generado.
ACTUALIZACIÓN: para incluir el documento XML en su dll / exe, solo agréguelo como un recurso incrustado y compile dos veces si la documentación cambia.
Una vez me metí con esto hace un tiempo, y usé esta solución de chicos. Funcionó bastante bien:
Mantengo el proyecto Jolt.NET en CodePlex y he implementado una característica que realiza esta tarea. Por favor, consulte la biblioteca Jolt para más información.
En esencia, la biblioteca le permite localizar y consultar programáticamente un archivo de comentarios de documentos XML para un ensamblaje utilizando los tipos de metadatos en System.Reflection
(es decir, MethodInfo
, PropertyInfo
, etc.)