Вам нужно использовать перегрузку StackFrame(int, bool)
и указать true
в качестве второго аргумента. Похоже, что перегрузка StackFrame(int)
не захватывает информацию об источнике.
Пример кода:
using System.Diagnostics;
...
[Conditional("DEBUG")]
internal static void Assert(bool condition)
{
if (!condition)
{
StackFrame frame = new StackFrame(1, true);
var message = string.Format("Line: {0}\r\nColumn: {1}\r\nWhere:{2}",
frame.GetFileLineNumber(),
frame.GetFileColumnNumber(),
frame.GetMethod().Name);
Log("ASSERTION", message);
}
}
(Кстати, посмотрев на ваши комментарии, вам понадобятся файлы PDB. Вот где хранится отладочная информация. Мне не совсем понятно, будет ли это работать в триггере SQLCLR, чтобы Если честно, вышесказанное работает для меня в консольном приложении, но это все, что я могу сказать ...)