C# 我可以将一个类标记为非我的代码,这样调试器就可以对它进行处理吗?
我有一个经过彻底测试的实用程序类,我不希望VS调试器进入它的任何方法。我想我听说过一种方法,可以将某个东西标记为非我的代码,这样C# 我可以将一个类标记为非我的代码,这样调试器就可以对它进行处理吗?,c#,.net,class-attributes,C#,.net,Class Attributes,我有一个经过彻底测试的实用程序类,我不希望VS调试器进入它的任何方法。我想我听说过一种方法,可以将某个东西标记为非我的代码,这样Just my code调试器设置会导致调试器跳过这些方法调用,但就我的一生而言,我记不起class属性是什么(我也无法成功地用谷歌搜索它) 我知道我可以将这个类分离成它自己的程序集,并在发布模式下构建它来缓解这个问题,但是我想进入一些程序集(并且我想让这个类保持原样) 这是可能的,还是我在胡思乱想 更新 我使用这两个选项(DebuggerStepThrough和Deb
Just my code
调试器设置会导致调试器跳过这些方法调用,但就我的一生而言,我记不起class属性是什么(我也无法成功地用谷歌搜索它)
我知道我可以将这个类分离成它自己的程序集,并在发布模式下构建它来缓解这个问题,但是我想进入一些程序集(并且我想让这个类保持原样)
这是可能的,还是我在胡思乱想
更新
我使用这两个选项(DebuggerStepThrough和DebuggerNonUserCode)进行了一些测试,发现DebuggerNonUserCode在启用/禁用
仅我的代码时,其行为与框架完全相同。DebuggerStepThrough
属性始终会导致调试器跳过标记有该属性的部分。为了保持一致性,我使用了DebuggerNonUserCode。您可以使用该属性跳过它 您正在查找该属性。如果要根据其名称进行判断,则[DebuggerNonUserCode]属性应该执行此操作,但它不执行此操作。因此,被接受的答案是错误的,或者至少在VS2017中它对我不起作用
从名称来看,[DebuggerStepThrough]属性从来没有打算做问题所要求的事情,因此它没有这样做也就不足为奇了。所以,20票以上的答案也是错误的,或者至少在VS2017中对我不起作用
什么对我有用
是[]属性
如图所示。按F10键跳过一个方法。问题解决了。@Ed:我知道这一点,但我不想在调试时在F10和F11之间切换(除非我特别想切换)。我希望在启用“仅我的代码”时,框架的行为与启用“我的代码”时相同。是的,这是一个公平的观点。然而,正是出于这个原因,我把它作为一个评论(而不是一个答案)留了下来。这正是我想要的。谢谢。我以为DebuggerStepThrough只用于方法。@Jan:如果你看一下AttributeUsage
标志,它适用于类
、结构
、构造函数
和方法
DebuggerNonUserCode
还包括Property
。杰夫:是的,看起来你是对的。我误读了Msdn文档。虽然这可能有效,但这不是它的预期用途。在MSDN中,“当调试器在单步执行用户代码时遇到此属性时,用户体验是看不到设计器提供的代码,而是单步执行下一个用户提供的代码语句。”请改用DebuggerStepThrough
。