Hallo,
ich habe zwei sehr ähnliche Konstrukte mit dem Attribut CallerMemberName
Logger:
Und in der Fehlerbehandlung:
Im ersten Fall, dem Logger wird der letzte Parameter methode korrekt gefüllt. Im zweiten Fall bleibt methode leer. Ich versteh nicht warum.
Testfunktion:
Ausgabe:
Logger:
Logger in Fehlerbehandlung:
Aber was soll da zwischen den beiden Fällen anders sein. Ich blick es nicht.
Gruß
Joachim
PS.: fehlende Klammern "}" deuten darauf hin, dass es in dieser KLasse bzw. Methode noch weiter geht.
ich habe zwei sehr ähnliche Konstrukte mit dem Attribut CallerMemberName
Logger:
C#-Quellcode
- public void Information(object? sender, string message, [CallerMemberName] string methode = "")
- {
- Logger?.LogInformation($"{Classname(sender)}.{methode}: {message}");
- }
- public void Information(string message)
- {
- Logger?.LogInformation(message);
- }
- private string Classname(object? obj)
- {
- return obj?.GetType().FullName ?? "N/A";
- }
Und in der Fehlerbehandlung:
Im ersten Fall, dem Logger wird der letzte Parameter methode korrekt gefüllt. Im zweiten Fall bleibt methode leer. Ich versteh nicht warum.
Testfunktion:
C#-Quellcode
- public string Ask()
- {
- return $"{Source()}: {Message}";
- }
- public string Source()
- {
- string classname;
- string methodname;
- if (string.IsNullOrEmpty(ClassName))
- classname = "N/A";
- else classname = ClassName;
- if (string.IsNullOrEmpty(MethodeName))
- methodname = "N/A";
- else
- methodname = MethodeName;
- return $"{classname}.{methodname}";
- }
Ausgabe:
Logger:
[2023-09-09T13:58.13.375] [Information] JHXManager.ViewModels.MainWindowViewModel.Fehler: Meldung
Logger in Fehlerbehandlung:
[2023-09-09T13:58.13.380] [Information] JHXManager.ViewModels.MainWindowViewModel.N/A: Meldung
Aber was soll da zwischen den beiden Fällen anders sein. Ich blick es nicht.
Gruß
Joachim
PS.: fehlende Klammern "}" deuten darauf hin, dass es in dieser KLasse bzw. Methode noch weiter geht.