Name der Klasse der aktuellen Funktion

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von jan99.

    Ich verstehe die Frage glaube ich nicht. In der Standard Fehlermeldung steht doch der Stacktrace.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    jan99 schrieb:

    aber ich möchte
    einfach mal diese Codes probieren:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. Test()
    4. End Sub
    5. Sub Test()
    6. Dim S As New System.Diagnostics.StackTrace(True)
    7. For index = 0 To S.FrameCount - 1
    8. Me.RichTextBox1.AppendText(String.Format("Frame: '{0}', Method: '{1}', FileName: '{2}', LineNumber; '{3}'{4}", index, S.GetFrame(index).GetMethod.Name, S.GetFrame(index).GetFileName, S.GetFrame(index).GetFileLineNumber, Environment.NewLine))
    9. Next
    10. End Sub
    11. End Class
    und

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. Test()
    4. End Sub
    5. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    6. Test()
    7. End Sub
    8. Private Sub Test()
    9. Dim stack = New StackTrace().ToString()
    10. Dim parts() = stack.Split(New Char() {CChar(vbCr), CChar(vbLf)}, StringSplitOptions.RemoveEmptyEntries)
    11. MessageBox.Show(parts(1))
    12. End Sub
    13. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!
    Du kannst dir mal

    VB.NET-Quellcode

    1. ​Dim frame = (New StackTrace).GetFrame(0)

    anschauen. Die Funktion in der du bist, bekommst zb. mit Frame.getMethod raus.
    Irgendwo im StackTrace findest auch die Klasse usw.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Ab .NET 4.5 gibt es nette Attribute für Funktionsparameter, die einem das Leben einfacher machen, wen's ums Logging geht
    Post-AGB:
    §1 Mit dem Lesen dieses Posts stimmst du den AGB unverzüglich zu
    §2 Ein Widerruf muss innerhalb von 3 Sekunden nach Lesen des Hauptbestandteil des ersten jemals gelesenen Posts erfolgen
    Abs.1 Die Signatur zählt nicht zum Hauptbestandteil des Posts
    §3 Ein erfolgreicher Widerruf zwingt zu einem Besuch bei einem Hypnotiseur oder Neurochirurg, sodass der gelesene Text aus den Erinnerungen entfernt werden kann
    Abs.1 Die Kosten und Risiken sind jeweils selbst zu tragen
    Ich find die Variante von xChRoNiKx sehr gut. Hab ich nie drüber nachgedacht. Me.Name wirft ja schon die Klasse raus.
    EDIT: Muss mich korrigieren. Me.Name scheint doch nicht die Klasse zu sein. Wenn man es in ner leeren Form1 probiert, steht dort Tatsächlich Form1. Wenn man es in einer weiteren Classe innerhalb von Form1.vb macht, steht dort aber was gänzlich anderes. Muss ich mir nochmal anschaue. Ich glaub über den StackTrace kommt man da doch eher zum Ziel

    EDITEDIT:

    VB.NET-Quellcode

    1. Dim actualClass = (New StackTrace).GetFrame(0).GetMethod.DeclaringType.Name.ToString
    sieht für mich ganz passabel aus.

    Editeditedit:
    Der Weg von xChRoNiKx scheint der wohl kürzeste und damit für mich sinnvollste zu sein. Wenn es nur um die eine Info geht.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „MemoAnMichSelbst“ ()