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