-->

从申请到我的非XSD生成的部分类防止DebuggerStepThroughAttribute?(Pr

2019-07-29 21:25发布

我用xsd.exe工具来生成基于我的XML架构的类。 它创造了一个公共的部分类DebuggerStepThroughAttribute。 好吧,我创建了这个类来写我的自定义代码,并希望能够一步进入这个代码,我已经写了另一部分的类文件,但它出现在调试器应用步骤,通过属性来我的部分类为好。 有一个简单的办法,我一步到我的代码,而每一次我重新生成的部分类手动删除属性?

Answer 1:

  1. 您可以在调试器忽略下工具 - >选项 - > Debugger->常规此属性。 取消选中“启用仅我的代码(仅管理)”。
  2. 你也可以只使用部分类作为另一个类/方法的包装。 在部分类中的方法将只是调用新类的实际方法存根。 调试器将跳过饰有属性的方法,但仍允许您通过步他们的包装类。 下面的示例...

//

[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?