В VS2015, как отключить Step Into для автоматически реализованных свойств?


Я только что начал использовать Visual Studio 2015 и обнаружил, что он ведет себя по-другому, чем VS2012/VS2013 при отладке автоматически реализуемых свойств.

Скажем, у меня есть свойство, определенное в классе:

public int MyProperty { get; set; }

Т. е. автоматически реализуемое свойство, в котором геттер и сеттер эффективно генерируются компилятором.

Я могу ссылаться на это свойство позже, как на часть вызова метода, например:

{
    DoSomeStuff(MyProperty);
}

Если я хочу отладить вызов DoSomeStuff и поставить точку останова на этом линии, затем ждать его, чтобы быть и нажмите клавишу F11, чтобы перейти на вызов, VS2015 отладчика теперь шаги в добытчика для MyProperty (в предыдущих версиях, для автоматически реализуемые свойства, он будет просто игнорировать getters и SETTERS).

Я нашел сообщение в блоге , в котором описывается возможность ставить точки останова на автогенераторах и сеттерах как новая функция, и я вижу, как это может быть полезно в некоторых случаях. Однако в моем случае я не заинтересован в определении точек разрыва или в использовании этих методов., тем более что наша кодовая база имеет множество автоматически реализуемых свойств и доступ к ним часто является вложенным (напр. DoSomeStuff(X.Y.Z)).

Короче говоря, можно ли отключить новый шаг в поведении для автоматически реализуемых свойств в VS2015, и если да, то как?

(я заметил флажок "перешагнуть через свойства и операторы" в параметрах отладки, но я не хочу перешагивать через все геттеры/сеттеры свойств, только для автоматически реализуемых свойств.)

2 6

2 ответа:

Перейдите в VS2015 options - > debugging - > general и отметьте "Step over properties and operators".

Просто добавьте атрибут DebuggerStepThrough в свою функцию / класс..

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