Ho usato lo strumento xsd.exe per generare una classe basata sul mio schema xml. Ha creato una classe pubblica parziale con DebuggerStepThroughAttribute. Bene, ho creato un altro file di classe parziale per questa classe per scrivere il mio codice personalizzato e voglio essere in grado di passare a questo codice che ho scritto ma sembra che il debugger stia applicando l'attributo step-through alla classe parziale my bene. C'è un modo semplice per me di entrare nel mio codice senza rimuovere manualmente l'attributo ogni volta che re-generi la classe parziale?Impedisci a DebuggerStepThroughAttribute di applicare alla mia classe parziale non generata da xsd?
Q
Impedisci a DebuggerStepThroughAttribute di applicare alla mia classe parziale non generata da xsd?
17
A
risposta
11
- È possibile fare in modo che il debugger ignori questo attributo in Strumenti-> Opzioni-> Debugger-> Generale. Deseleziona "Abilita solo il mio codice (solo gestito)".
- Si potrebbe anche usare semplicemente la classe parziale come wrapper per un'altra classe/metodi. I metodi nella classe parziale sarebbero solo stub che chiamano i metodi attuali nella nuova classe. Il debugger salterà il metodo decorato con l'attributo, ma ti permetterà comunque di scorrere la classe che avvolgono. Nell'esempio qui sotto ...
//
[DebuggerStepThrough]
static void DebuggerStepThroughInPartialClass()
{
WrappedClass.NonDebuggerStepThrough();
}
class WrappedClass{
static void NonDebuggerStepThroughInNewClass()
{
int bar = 0;
bar++;
}
}
0
modo migliore è quello di rimuovere semplicemente le linee di attributo dal codice generato. Il modo più semplice in cui IMHO utilizza un alias nella finestra di comando.
esempio:
1) Aprire la finestra di comando (CTRL + A)
2) tipo: (versione VB)
alias removenodebug Edit.Replace "(?([^\r\n])\s)*System.Diagnostics.DebuggerStepThroughAttribute\(\),\s*_\r\n(?([^\r\n])\s)*" "" /d /regex /all
3) ora si dispone di un alias per trovare & sostituire quelle linee sul documento corrente. Si può semplicemente digitare nella finestra di comando:
removenodebug
e le linee degli attributi sono andati.
Nota: l'espressione regolare utilizzata in questo esempio è per codice VB, ma non dovrebbe essere troppo difficile da convertire per C#.
Problemi correlati
- 1. Debug di classe parziale
- 2. passare parametri alla mia vista parziale?
- 3. XSD a XForms e XForms alla conversione XSD
- 4. Creare una classe generata xsd comune da utilizzare con altri pacchetti
- 5. Da generazione Pojo a Xsd
- 6. (parziale applicare str) e applicare-str in di clojure ->
- 7. Entity Framework 4.1 Database First non aggiunge una chiave primaria alla classe generata da DbContext T4
- 8. Posso accedere alla mia classe .NET personalizzata da PowerShell?
- 9. Come applicare Google Closure alla mia intera pagina web?
- 10. Come concedere stringhe alla mia classe?
- 11. Aggiungere codice alla classe generata automaticamente in SWIG
- 12. Impedisci alla classe ereditaria di ignorare la funzione virtuale della classe base
- 13. Elaborazione da Linq a XSD
- 14. Valore Nullable con classe generata xsd.exe
- 15. Griglia KendoUI - come aggiungere una classe alla tabella generata
- 16. Nessuna classe R generata
- 17. Impedisci la conversione da uint64_t a uint16_t
- 18. XSD per la documentazione XML generata per C#?
- 19. generata da openssl non è casuale.
- 20. Java a XSD o XSD a Java
- 21. Posso avere attributo nullo e altro attributo nello stesso tag in XML creato dalla classe generata da XSD C#?
- 22. Impedisci a Vim di ricordare una modifica
- 23. Applicare una classe a un tag br?
- 24. schema xsd non presentato da wsdl
- 25. .NET xsd importatore crea una classe non serializzabile
- 26. Caricamento immagine generata da JavaScript a Django
- 27. Classe parziale nidificata
- 28. Classe parziale per controller
- 29. Dagger 2 nessuna classe generata
- 30. ASP.NET: Come applicare la classe CSS per una tabella generata in C# codebehind
Speravo in qualche attributo che potessi inserire nella mia classe parziale che mi avrebbe consentito di intervenire ma suppongo che non sia un'opzione. Probabilmente rimuoverò manualmente l'attributo dalla classe generata ogni volta che ho bisogno di generarlo, che probabilmente non sarà troppo spesso. Grazie per aver risposto! – Lyndal
Quando si disattiva 'Abilita solo il mio codice' si dovrebbe vedere immediatamente il punto di interruzione su un cerchio marrone scuro che indica che ora può essere eseguito il debug –