【发布时间】:2010-09-13 05:48:16
【问题描述】:
我的很多 C# 代码都遵循这种模式:
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));
}
}
.NET 中是否有一种方法可以获取函数参数的键/值列表,以便我可以调用另一个函数来构造我的错误日志记录字符串? 要么 您有更通用/更好的方法吗?
【问题讨论】:
-
可能是某种语言中的反射可以提供帮助?
-
您可以通过反射来实现,但在许多函数调用过程中会变得很昂贵。
-
我不认为你可以用反射或 StackTrace/StackFrame 做到这一点。我认为您唯一的选择可能是使用 AOP 或后处理框架,例如 PostSharp。