在VS2015中,如何为自动实现的属性禁用Step Into?

时间:2016-08-19 14:10:56

标签: c# debugging visual-studio-2015 visual-studio-debugging

我刚刚开始使用Visual Studio 2015,发现在调试自动实现的属性时,它与VS2012 / VS2013的行为不同。

假设我在类中定义了一个属性:

public int MyProperty { get; set; }

即。一个自动实现的属性,其中getter和setter由编译器有效生成。

稍后我可以引用此属性,作为方法调用的一部分,例如:

{
    DoSomeStuff(MyProperty);
}

如果我想调试DoSomeStuff的调用并在该行上设置一个断点,然后等待它被命中,F11进入调用,VS2015调试器现在进入{{getter}的getter 1}}(在以前的版本中,对于自动实现的属性,它只会忽略getter和setter)。

我找到了一个blog post,它描述了在自动吸气器上放置断点的能力。 setter作为一个新功能,我可以看到在某些情况下这可能有用。但是,在我的情况下,我对破坏或踩到这些方法不感兴趣,特别是因为我们的代码库有许多自动实现的属性,并且对它们的访问通常是嵌套的(例如。MyProperty)。

简而言之,是否可以在VS2015中为自动实现的属性禁用新的Step Into行为,如果是,如何?

(我注意到调试选项中的“跳过属性和运算符”复选框,但我不想跨越所有属性getter / setter,只是那些用于自动实现属性的属性。)

3 个答案:

答案 0 :(得分:8)

转到VS2015选项 - >调试 - > general and tick"跳过属性和运算符"。

答案 1 :(得分:0)

只需将DebuggerStepThrough属性添加到您的函数/类..

[DebuggerStepThrough]
public class DontDebugInterceptor : IInterceptor
{
    // do something...
}

答案 2 :(得分:0)

在Visual Studio 2017中:

在方法调用的行上暂停调试器->右键单击方法->具体步骤-> [从列表中选择方法]。

这不是一个配置可靠的解决方案,而是您每次想输入一个方法并避免属性介入的操作。