Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 29154|Antwort: 2

[Quelle] .NET/C#-Attribute CallerMemberName, CallerFilePath, CallerLineNumber

[Link kopieren]
Veröffentlicht am 11.08.2021 09:45:56 | | | |
Drei Attribute wurden in .Net 4.5 eingeführt: CallerMemberName, CallerFilePath und CallerLineNumber. Mit Hilfe des Compilers können Sie den Namen der aufrufenden Funktion erhalten (genauer gesagt, sie sollte ein Mitglied sein), die Aufrufdatei und die Rufleitungsnummer.

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

Man kann auch StackTrace- und StackFrame-Objekte verwenden, um sie zu erhalten, aber mit dieser Funktion können wir sie bequemer erhalten.

StackTrace: Repräsentiert einen Stack-Trace, also eine geordnete Sammlung von einem oder mehreren Stack-Frames.

StackFrame: Liefert Informationen über den StackFrame (ein Funktionsaufruf im Aufrufstack, der den aktuellen Thread repräsentiert).

Zuvor habe ich AOP verwendet, um den Methodennamen des Aufrufers über StackTrace zu erhalten, und der Code lautet wie folgt:


Mit dieser Funktion ist der Testcode wie folgt:

Renderings:



(Ende)




Vorhergehend:Maven updatePolicy Snapshot Update Policy
Nächster:Java-Byte[] und InputStream werden ineinander konvertiert
 Vermieter| Veröffentlicht am 27.11.2022 21:09:56 |
 Vermieter| Veröffentlicht am 27.11.2022 22:35:47 |
Den aktuellen Methodennamen von einer asynchronen Funktion bekommen?

Der Hyperlink-Login ist sichtbar.

C#5 fügt Anruferinformationen hinzu, die Ihnen möglicherweise mehr von dem bieten, was Sie suchen. Beachten Sie, dass diese die entsprechenden Informationen zur Kompilierungszeit in die aufrufende Seite einfügen, anstatt Laufzeitinformationen zu verwenden. Begrenztere Funktionalität (offensichtlich bekommt man nicht den kompletten Anrufstack), aber viel schneller.





Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com