Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 29154|Отговор: 2

[Източник] .NET/C# атрибути CallerMemberName, CallerFilePath, CallerLineNumber

[Копирай линк]
Публикувано в 11.08.2021 г. 9:45:56 ч. | | | |
В .Net 4.5 бяха въведени три атрибута: CallerMemberName, CallerFilePath и CallerLineNumber. С помощта на компилатора можеш да получиш името на функцията за извикване (по-точно, тя трябва да е член), файла за повикване и номера на линията за повикване.

Документация:https://docs.microsoft.com/en-us ... membernameattribute

Можете също да използвате StackTrace и StackFrame обекти, за да ги получите, но с тази функция можем да ги получим по-удобно.

StackTrace: Представлява стекова следа, която е подредена колекция от един или повече стек фрейма.

StackFrame: Предоставя информация за StackFrame (извикване на функция в стека за извиквания, която представлява текущата нишка).

Преди това използвах AOP, за да получа името на метода на обаждащия се чрез StackTrace, и кодът е следният:


Използвайки тази функция, тестовият код е следният:

Интерпретации:



(Край)




Предишен:Актуализация на MavenПолитика за обновяване на моментни снимки на политика
Следващ:Java байт[] и InputStream се конвертират един в друг
 Хазяин| Публикувано в 27.11.2022 г. 21:09:56 ч. |
 Хазяин| Публикувано в 27.11.2022 г. 22:35:47 ч. |
Получаваш ли текущото име на метода от асинхронна функция?

Входът към хиперлинк е видим.

C# 5 добавя свойства за информация за обаждащите се, което може да ви даде повече от това, което търсите. Обърнете внимание, че те вмъкват подходящата информация по време на компилиране в извикващия сайт, вместо да използват информация по време на изпълнение. По-ограничена функционалност (очевидно не получаваш пълния стек от обаждания), но много по-бързо.





Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com