【发布时间】:2012-10-29 21:34:49
【问题描述】:
是否有一种简单的方法可以转储完整的 HttpRequest。我需要这个来分析我的 Web 应用程序中的问题。 HttpRequest 包含很多属性,我不想自己写。
HttpRequest request = HttpContext.Current.Request;
request.Dump();
我正在寻找一种类似于 Linqpad 中的方法,它可以打印出所有带有值的属性。
【问题讨论】:
是否有一种简单的方法可以转储完整的 HttpRequest。我需要这个来分析我的 Web 应用程序中的问题。 HttpRequest 包含很多属性,我不想自己写。
HttpRequest request = HttpContext.Current.Request;
request.Dump();
我正在寻找一种类似于 Linqpad 中的方法,它可以打印出所有带有值的属性。
【问题讨论】:
你可以这样写一个扩展方法:
var dict = someObj.DumpProperties();
var dumpStr = String.Join("\n",
dict.Select(kv => kv.Key + "=" + kv.Value ?? kv.Value.ToString()));
.
public static class MyExtensions
{
public static Dictionary<string, object> DumpProperties(this object obj)
{
var props = obj.GetType()
.GetProperties()
.ToDictionary(p => p.Name, p => p.GetValue(obj, null));
return props;
}
}
【讨论】:
内置的SaveAs() 方法可能会对您有所帮助。
http://msdn.microsoft.com/en-us/library/system.web.httprequest.saveas.aspx
它的描述是:
将请求上下文保存到磁盘对于调试很有用。
【讨论】: