Digamos que tiene un MethodInfo, o cualquier otra subclase de MemberInfo para ese asunto, en C#. ¿Es posible recuperar el nombre del archivo en el que fue declarado y posiblemente los números de línea para donde comienza la declaración? Esta información debe existir en algún lugar de los metadatos del modo de depuración, ya que la creación de una instancia de StackTrace le brindará esa información. ¿Debo buscar en System.Diagnostics en lugar de System.Reflection?¿Es posible recuperar información del archivo mediante reflejo en C#?
6
A
Respuesta
4
La información sobre los números de línea proviene normalmente de archivos de símbolos (o "base de datos de programas" .pdb). Herramientas como FxCop usan el archivo de símbolos para vincular el IL al código fuente. Busqué en Google la siguiente API para usted: http://msdn.microsoft.com/en-us/library/system.diagnostics.symbolstore.aspx
1
Debe utilizar las clases del Símbolo de System.Diagnostics para obtener información de los archivos .pdb. Aquí es un buen blog en él
Algo como esto podría funcionar:
using System;
using System.Diagnostics;
class Foo
{
static void Main()
{
SmallFunc();
}
static void SmallFunc()
{
PrintStack();
}
static void PrintStack()
{
StackTrace st = new StackTrace(true); // true means get line numbers.
foreach(StackFrame f in st.GetFrames()) {
Console.Write(f);
}
}
}
Cuestiones relacionadas
- 1. Recuperar información ID3 del archivo m4a en PHP
- 2. ¿Cómo puedo generar un evento mediante reflejo en .NET/C#?
- 3. ¿Cómo puedo recuperar la información del monitor?
- 4. Active Directory: Recuperar información del usuario
- 5. ¿Es posible recuperar todos los miembros, incluido el privado, de una clase en Java mediante reflexión?
- 6. ¿Objective-C tiene reflejo?
- 7. ¿Es posible recuperar la pila de llamadas mediante programación en VB6?
- 8. ¿Cómo recuperar información útil del sistema en Java?
- 9. Información del proceso mediante programación en Darwin/OSX
- 10. ¿Los miembros virtuales se llaman mediante reflejo (en circunstancias normales)?
- 11. cómo recuperar mediante programación detalles del servidor SMTP de web.config
- 12. Reflejo de tiempo de compilación en C#
- 13. ¿Es posible agrupar varias columnas mediante MySQL?
- 14. ¿Es posible establecer drawableLeft mediante programación?
- 15. ¿Es posible obtener un número de versión del archivo XAP
- 16. ¿Cómo obtener información del dispositivo en Android
- 17. Python: ¿Cómo recuperar información de clase de un objeto 'frame'?
- 18. Recuperar parámetros del archivo de propiedades
- 19. ¿Cómo obtener el proveedor de USB y la información del producto mediante programación en Linux?
- 20. cómo recuperar información de la fila eliminada
- 21. Guardar archivo XML en AS3 es posible
- 22. Recuperar método Información de una función F #
- 23. Scala 2.10 y reflejo del paquete
- 24. ¿Es posible desinstalar mediante programación un paquete en Android
- 25. ¿Es posible desactivar el modo silencioso mediante programación en Android?
- 26. lo que es reflejo en C#, ¿cuál es el beneficio? Cómo usarlo para obtener beneficios
- 27. Android: Obtenga información de hardware mediante programación
- 28. ¿Recuperar información múltiple por un solo número?
- 29. Recuperar la ruta del archivo fuente actual con fish
- 30. ¿Es posible recuperar la última fecha de modificación de un archivo utilizando Javascript?