Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 29154|Antwoord: 2

[Bron] .NET/C#-attributen CallerMemberName, CallerFilePath, CallerLineNumber

[Link kopiëren]
Geplaatst op 11-08-2021 09:45:56 | | | |
Drie attributen werden geïntroduceerd in .Net 4.5: CallerMemberName, CallerFilePath en CallerLineNumber. Met behulp van de compiler kun je de naam van de aanroepfunctie (om precies te zijn, het moet een lidmaatschap zijn), het aanroepbestand en het aanroeplijnnummer krijgen.

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

Je kunt ook StackTrace- en StackFrame-objecten gebruiken om ze te verkrijgen, maar met deze functie kunnen we ze gemakkelijker krijgen.

StackTrace: Vertegenwoordigt een stacktrace, een geordende verzameling van één of meer stackframes.

StackFrame: Geeft informatie over de StackFrame (een functieaanroep in de aanroepstack die de huidige thread vertegenwoordigt).

Eerder gebruikte ik AOP om de methodenaam van de aanroeper via StackTrace te krijgen, en de code is als volgt:


Met deze functie is de testcode als volgt:

Renderings:



(Einde)




Vorig:Maven updatePolicy snapshot updatebeleid
Volgend:Java byte[] en InputStream worden naar elkaar omgezet
 Huisbaas| Geplaatst op 27-11-2022 21:09:56 |
 Huisbaas| Geplaatst op 27-11-2022 22:35:47 |
Krijg je de huidige methodnaam van een asynchrone functie?

De hyperlink-login is zichtbaar.

C#5 voegt bellerinformatie-eigenschappen toe, wat je mogelijk meer geeft van wat je zoekt. Let op dat deze de juiste informatie bij het compileren in de aanroepende site invoeren, in plaats van runtime-informatie te gebruiken. Meer beperkte functionaliteit (je krijgt natuurlijk niet de volledige call stack), maar veel sneller.





Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com