很多我的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的方式来获取参数的键/值列表的功能,使我可以调用另一个函数来构造我的错误日志字符串? 或 你有更通用/更好的方式来做到这一点吗?
可能与语言中的Reflection有关吗? – nlucaroni 2008-09-25 20:27:09
你可以通过反射来实现,但在许多函数调用过程中它会变得很昂贵。 – 2008-09-25 20:28:48
我不认为你可以用Reflection或StackTrace/StackFrame来做到这一点。我认为你唯一的选择可能是使用AOP或后处理框架,如PostSharp。 – 2008-09-25 20:29:16