Ein großer Teil meines C#-Codes folgt diesem Muster:
void foo(string param1, string param2, string param3)
{
try
{
// do something...
}
catch(Exception ex)
{
LogError(String.Format("Error in foo(param1={0}, param2={1}, param3={2}), exception={3}", param1, param2, param3, ex.Message));
}
}
Gibt es eine Möglichkeit, in .NET eine Key/Value-Liste der Parameter zu einer Funktion zu erhalten, so dass ich eine andere Funktion aufrufen kann, um meine Fehlerprotokollierungszeichenfolge zu konstruieren? ODER Haben Sie eine allgemeinere / bessere Möglichkeit, dies zu tun?
0 Stimmen
Vielleicht etwas mit Reflexion in der Sprache, das helfen könnte?
0 Stimmen
Sie können es über Reflexion tun, aber es wird teuer im Laufe der vielen Funktionsaufrufe.
3 Stimmen
Ich glaube nicht, dass Sie dies mit Reflection oder StackTrace/StackFrame tun können. Ich denke, Ihre einzige Wahl kann sein, ein AOP oder Post-Processing-Framework, wie PostSharp zu verwenden.