Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 29154|Odpowiedź: 2

[Źródło] .NET/C# atrybuty CallerMemberName, CallerFilePath, CallerLineNumber

[Skopiuj link]
Opublikowano 11.08.2021 09:45:56 | | | |
W .Net 4.5 wprowadzono trzy atrybuty: CallerMemberName, CallerFilePath oraz CallerLineNumber. Dzięki kompilatorowi możesz uzyskać nazwę funkcji wywołującej (dokładniej, powinna być członkiem), plik wywołania oraz numer linii wywołania.

Dokumentacja:https://docs.microsoft.com/en-us ... membernameattribute

Możesz też użyć obiektów StackTrace i StackFrame, aby je pozyskać, ale dzięki tej funkcji możemy je uzyskać wygodniej.

StackTrace: Reprezentuje ślad stosu, czyli uporządkowany zbiór jednej lub więcej ramek stosu.

StackFrame: Dostarcza informacji o StackFrame (wywołanie funkcji w stosie wywołań reprezentujące bieżący wątek).

Wcześniej używałem AOP, aby uzyskać nazwę metody wywołującego przez StackTrace, a kod wygląda następująco:


Korzystając z tej funkcji, kod testowy wygląda następująco:

Renderingi:



(Koniec)




Poprzedni:Aktualizacja MavenPolityka aktualizacji snapshotów
Następny:Java bajt[] i InputStream są między sobą konwertowane
 Ziemianin| Opublikowano 27.11.2022 21:09:56 |
 Ziemianin| Opublikowano 27.11.2022 22:35:47 |
Uzyskanie aktualnej nazwy metody z funkcji asynchronicznej?

Logowanie do linku jest widoczne.

C# 5 dodaje właściwości informacji o dzwoniących, co może dać Ci więcej tego, czego szukasz. Należy zauważyć, że wprowadzają one odpowiednie informacje w czasie kompilacji do wywołującej strony, zamiast korzystać z danych w czasie działania. Bardziej ograniczona funkcjonalność (oczywiście nie masz pełnego stosu wywołań), ale znacznie szybciej.





Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com