Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 29154|Відповідь: 2

[Джерело] .NET/C# атрибути CallerMemberName, CallerFilePath, CallerLineNumber

[Копіювати посилання]
Опубліковано 11.08.2021 09:45:56 | | | |
У .Net 4.5 було введено три атрибути: CallerMemberName, CallerFilePath і CallerLineNumber. За допомогою компілятора ви можете отримати назву викликової функції (точніше, це має бути учасник), файл виклику та номер лінії виклику.

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

Ви також можете використовувати об'єкти StackTrace та StackFrame для їх отримання, але з цією функцією ми можемо отримати їх зручніше.

StackTrace: Представляє стекову трасу, яка є впорядкованою колекцією одного або кількох стекових кадрів.

StackFrame: Надає інформацію про StackFrame (виклик функції в стеку викликів, що представляє поточний потік).

Раніше я використовував AOP, щоб отримати ім'я методу викликача через StackTrace, і код був таким:


Використовуючи цю функцію, тестовий код виглядає так:

Візуалізації:



(Кінець)




Попередній:Оновлення MavenПолітика оновлення знімків політики
Наступний:Javabyte[] та InputStream конвертуються один в одного
 Орендодавець| Опубліковано 27.11.2022 21:09:56 |
 Орендодавець| Опубліковано 27.11.2022 22:35:47 |
Отримати поточну назву методу з асинхронної функції?

Вхід за гіперпосиланням видно.

C# 5 додає властивості інформації про абонента, що може дати вам більше того, що ви шукаєте. Зверніть увагу, що вони вставляють відповідну інформацію під час компіляції на сайт, що викликає виклик, замість використання даних під час виконання. Функціональність обмежена (звісно, повний стек дзвінків немає), але значно швидше.





Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com