我使用 xsd.exe 工具根据我的 xml 架构生成一个类。它使用 DebuggerStepThroughAttribute 创建了一个公共部分类。好吧,我为这个类创建了另一个分部类文件来编写我的自定义代码,并希望能够单步执行我编写的这段代码,但调试器似乎也在将分步属性应用于我的分部类。是否有一种简单的方法可以让我在每次重新生成部分类时无需手动删除属性即可进入我的代码?
问问题
4859 次
2 回答
13
- 您可以在 Tools->Options->Debugger->General 下让调试器忽略此属性。取消选中“仅启用我的代码(仅限托管)”。
- 您也可以只使用部分类作为另一个类/方法的包装器。部分类中的方法只是调用新类中实际方法的存根。调试器将跳过用该属性修饰的方法,但仍允许您单步执行它们包装的类。下面的例子...
//
[DebuggerStepThrough]
static void DebuggerStepThroughInPartialClass()
{
WrappedClass.NonDebuggerStepThrough();
}
class WrappedClass{
static void NonDebuggerStepThroughInNewClass()
{
int bar = 0;
bar++;
}
}
于 2009-07-08T19:47:31.327 回答
0
最好的方法是简单地从生成的代码中删除属性行。恕我直言,最简单的方法是在命令窗口上使用别名。
例子:
1) 打开命令窗口 (CTRL+A)
2)类型:(VB版)
alias removenodebug Edit.Replace "(?([^\r\n])\s)*System.Diagnostics.DebuggerStepThroughAttribute\(\),\s*_\r\n(?([^\r\n])\s)*" "" /d /regex /all
3)现在你有一个别名来查找和替换当前文档上的那些行。您可以简单地在命令窗口中输入:
removenodebug
并且属性线消失了。
注意:本例中使用的正则表达式适用于 VB 代码,但转换为 C# 应该不会太难。
于 2013-04-26T16:36:46.260 回答