我用xsd.exe工具来生成基于我的XML架构的类。 它创造了一个公共的部分类DebuggerStepThroughAttribute。 好吧,我创建了这个类来写我的自定义代码,并希望能够一步进入这个代码,我已经写了另一部分的类文件,但它出现在调试器应用步骤,通过属性来我的部分类为好。 有一个简单的办法,我一步到我的代码,而每一次我重新生成的部分类手动删除属性?
Answer 1:
- 您可以在调试器忽略下工具 - >选项 - > Debugger->常规此属性。 取消选中“启用仅我的代码(仅管理)”。
- 你也可以只使用部分类作为另一个类/方法的包装。 在部分类中的方法将只是调用新类的实际方法存根。 调试器将跳过饰有属性的方法,但仍允许您通过步他们的包装类。 下面的示例...
//
[DebuggerStepThrough]
static void DebuggerStepThroughInPartialClass()
{
WrappedClass.NonDebuggerStepThrough();
}
class WrappedClass{
static void NonDebuggerStepThroughInNewClass()
{
int bar = 0;
bar++;
}
}
Answer 2:
最好的办法是简单地从所产生的代码中删除属性行。 最简单的方法恕我直言,是使用命令行窗口中的别名。
例:
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#转换。
文章来源: Prevent DebuggerStepThroughAttribute from applying to my non-xsd-generated partial class?