Получить информацию о вызывающем абоненте на C# для нескольких вызовов на одной линииC#

Место общения программистов C#
Anonymous
Получить информацию о вызывающем абоненте на C# для нескольких вызовов на одной линии

Сообщение Anonymous »

В C# вы можете получить некоторую информацию о вызывающем методе через атрибуты [Caller*]. Вы можете получить имя участника, путь к файлу и номер линии вызывающего абонента. Но что произойдет, если метод вызывается несколько раз в одной строке? Можно ли дифференцировать вызовы?
Например:

Код: Выделить всё

using System.Runtime.CompilerServices;

static void LogCaller(
string message,
[CallerFilePath] string callerFilePath = "",
[CallerMemberName] string callerName = "",
[CallerLineNumber] int callerLine = 0
) {
Console.WriteLine($"{message} [{callerFilePath}, {callerLine}, {callerName}]");
}

LogCaller("Hello call 1");

LogCaller("Hello call 2");

LogCaller("Hello call 3"); LogCaller("Hello call 4");
Выдает следующий результат:

Код: Выделить всё

Hello call 1 [/home/devel/tst/Program.cs, 12, $]
Hello call 2 [/home/devel/tst/Program.cs, 14, $]
Hello call 3 [/home/devel/tst/Program.cs, 16, $]
Hello call 4 [/home/devel/tst/Program.cs, 16, $]
Где «вызов 3» и «вызов 4» нельзя различить. Можно ли это сделать?
С уважением.

Подробнее здесь: https://stackoverflow.com/questions/786 ... -same-line

Вернуться в «C#»