Возможно, вы могли бы использовать AOP-фреймворк, такой как PostSharp, чтобы проникать в отладчик при каждом входе в метод. Взгляните на очень краткое руководство по на этой странице , чтобы узнать, как вы можете регистрировать / отслеживать каждый раз, когда вводится метод.
Вместо записи в журнал вы можете поместить оператор Debugger.Break () в обработчик OnEntry. Хотя отладчик остановился бы не на ваших методах, а на обработчике OnEntry (поэтому я не уверен, действительно ли это помогает).
Вот очень простой пример:
Класс аспекта определяет обработчик OnEntry, который вызывает Debugger.Break ():
[Serializable]
public sealed class DebugBreakAttribute : PostSharp.Laos.OnMethodBoundaryAspect
{
public DebugBreakAttribute() {}
public DebugBreakAttribute(string category) {}
public string Category { get { return "DebugBreak"; } }
public override void OnEntry(PostSharp.Laos.MethodExecutionEventArgs eventArgs)
{
base.OnEntry(eventArgs);
// debugger will break here. Press F10 to continue to the "real" method
System.Diagnostics.Debugger.Break();
}
}
Затем я могу применить этот аспект к своему классу, где я хочу, чтобы отладчик ломался при каждом вызове метода:
[DebugBreak("DebugBreak")]
public class MyClass
{
public MyClass()
{
// ...
}
public void Test()
{
// ...
}
}
Теперь, если я создаю и запускаю приложение, отладчик останавливается в обработчике OnEntry () при каждом вызове одного из методов MyClass. Все, что мне нужно сделать, это нажать F10, и я использую метод MyClass.