Я написал модуль logger / exceptionfactory, который использует System.Diagnostics.StackTrace, чтобы получить атрибуты из вызывающих методов и их объявленные типы.Однако я заметил, что если я запускаю код вне Visual Studio в режиме Release, некоторые из моих более коротких методов становятся встроенными и пропадают из трассировки стека.Теперь у меня нет возможности проверить, будет ли метод встроен во время выполнения, но я не хочу [MethodImpl(MethodImplOptions.NoInlining)]
каждый важный метод.Но если из-за этого будет отсутствовать метод из моих базовых классов, я могу неправильно прочитать информацию о слое и операциях, что может привести к ложному журналу или ошибочно заданным исключениям.
Есть ли эмпирическое правило о том, что указывается, где и когда?Виртуальные методы, статические методы, методы базового класса трактуются по-другому?Должен ли я беспокоиться только о прокладке внутри сборки?Внутри пространства имен?