0
我在想从ActionExecutingContext
实例中我应该包含哪些字段,我认为有一个帮助程序是不是很好,它会产生可读的实例数据文本表示?日志记录实例数据
我知道,在所有情况下我都不是完美的 - 我的意思是它可能会太深,它可能不会输出所有默认情况下需要的东西,但是在许多情况下,数据。
有没有人写过这样的东西,在任何开源项目中见过?
我在想从ActionExecutingContext
实例中我应该包含哪些字段,我认为有一个帮助程序是不是很好,它会产生可读的实例数据文本表示?日志记录实例数据
我知道,在所有情况下我都不是完美的 - 我的意思是它可能会太深,它可能不会输出所有默认情况下需要的东西,但是在许多情况下,数据。
有没有人写过这样的东西,在任何开源项目中见过?
您可以使用反射很容易地得到一个对象的所有属性的值:
public static void LogPublicProperties(object obj)
{
foreach (var propertyInfo in d.GetType().GetProperties())
Console.WriteLine("{0} = {1}",
propertyInfo.Name,
propertyInfo.GetValue(d, null));
}
如果你想记录的字段,然后用Type.GetFields()
代替GetProperties()
。
它只会从第一级属性获取值,例如在ActionExecutingContext用户代理里面很深:filterContext.RequestContext.HttpContext.Request.UserAgent – Giedrius 2012-07-20 11:31:14
好吧,我看到你的问题了。 – M4N 2012-07-20 11:32:05
所以这样递归地做,这只是一个如何检测复杂属性的问题。 – 2012-07-20 11:35:12