Utilicé la herramienta xsd.exe para generar una clase basada en mi esquema xml. Creó una clase parcial pública con DebuggerStepThroughAttribute. Bien, creé otro archivo de clase parcial para esta clase para escribir mi código personalizado y quiero poder entrar en este código que he escrito, pero parece que el depurador está aplicando el atributo de paso a paso a mi clase parcial como bien. ¿Hay alguna manera fácil de ingresar a mi código sin eliminar manualmente el atributo cada vez que vuelvo a generar la clase parcial?Evitar que DebuggerStepThroughAttribute se aplique a mi clase parcial no generada xsd?
17
A
Respuesta
11
- Puede hacer que el depurador ignore este atributo en Herramientas-> Opciones-> Depurador-> General. Desmarque "Habilitar solo mi código (solo administrado)".
- También podría usar la clase parcial como contenedor para otra clase/métodos. Los métodos en la clase parcial solo serían stubs que llaman a los métodos reales en la nueva clase. El depurador omitirá el método decorado con el atributo pero aún le permitirá pasar por la clase que envuelve. Ejemplo a continuación ...
//
[DebuggerStepThrough]
static void DebuggerStepThroughInPartialClass()
{
WrappedClass.NonDebuggerStepThrough();
}
class WrappedClass{
static void NonDebuggerStepThroughInNewClass()
{
int bar = 0;
bar++;
}
}
0
mejor forma de hacerlo es simplemente eliminar las líneas de atributos del código generado. La manera más fácil en mi humilde opinión es utilizar un alias en la ventana de comandos.
ejemplo:
1) Abra la ventana de comandos (CTRL + A)
2) tipo: (versión VB)
alias removenodebug Edit.Replace "(?([^\r\n])\s)*System.Diagnostics.DebuggerStepThroughAttribute\(\),\s*_\r\n(?([^\r\n])\s)*" "" /d /regex /all
3) Ahora usted tiene un alias para encontrar & reemplace esas líneas en el documento actual. simplemente puede escribir en la ventana de comandos:
removenodebug
y las líneas de atributos se han ido.
Nota: La expresión regular utilizada en este ejemplo es para el código VB, pero no debería ser demasiado difícil de convertir para C#.
Cuestiones relacionadas
- 1. XSD para documentación XML generada para C#?
- 2. Valor anulable con la clase generada xsd.exe
- 3. ¿Por qué dice XSD que mi elemento no está completo?
- 4. Cómo usar la clase generada por Xsd2Code
- 5. Crear una clase común xsd generada para ser utilizada por otros paquetes
- 6. ¿Cómo incluir la documentación xsd: en la clase C# generada con XSD.exe?
- 7. ¿Cómo puedo ingresar a un método decorado con DebuggerStepThroughAttribute?
- 8. .NET xsd importador crea la clase no serializable
- 9. ¿Puedo llamar a una función definida en una clase parcial de otra clase parcial? ¿Es posible?
- 10. Cómo convertir XSD a Python Clase
- 11. ¿Hay alguna forma de evitar que una excepción SystemExit generada a partir de sys.exit() quede atrapada?
- 12. pasando los parámetros a mi vista parcial?
- 13. Programar serializar la clase a xsd
- 14. Evitar que se llame a un método antes que otro
- 15. ¿Cómo se usa la clase generada en sqoop en MapReduce?
- 16. GUI generada dinámicamente
- 17. prestación parcial no se muestra
- 18. ¿Puedo evitar que Android mate mi aplicación?
- 19. Grails: puedo hacer que un validador se aplique solo para crear (no actualizar/editar)
- 20. ¿Cómo puedo evitar que una clase se herede en C#?
- 21. Anulación constructor por defecto de la clase parcial con otra clase parcial
- 22. ¿Hay alguna manera de escribir un Método de extensión que se aplique a varios tipos?
- 23. ¿Se puede crear automáticamente un archivo mysqldump que no aplique las restricciones de clave externa?
- 24. C# clase parcial
- 25. No sé por qué mi clase no se puede serializar
- 26. Convenciones de nomenclatura para archivos de clase parcial
- 27. Android: aplique efectos OpenGL a la cámara
- 28. Clase parcial para el controlador
- 29. ¿Qué hace que se aplique un borde blanco a un NSProgressIndicator que se muestra en el menú del sistema?
- 30. ¿Evitar que UITableView se desplace?
Esperaba algún atributo que pudiera poner en MI clase parcial que me permitiría entrar en él, pero supongo que no es una opción. Probablemente solo eliminaré manualmente el atributo de la clase generada cada vez que necesite generarlo, que probablemente no será demasiado frecuente. ¡Gracias por responder! – Lyndal
Cuando desactivas la opción "Habilitar solo mi código", deberías ver que el punto de interrupción cambia inmediatamente a un círculo granate sólido que indica que ahora se puede depurar –