转储HttpRequest的属性

时间:2012-11-09 14:47:25

标签: c# asp.net debugging

是否有一种简单的方法来转储完整的HttpRequest。我需要这个来分析我的Web应用程序中的问题。 HttpRequest包含许多属性,我不想自己编写它。

 HttpRequest request = HttpContext.Current.Request;
 request.Dump();

我正在寻找Linqpad中的一个方法,它打印出所有带有值的属性。

2 个答案:

答案 0 :(得分:2)

内置的SaveAs()方法可能会帮助您。

http://msdn.microsoft.com/en-us/library/system.web.httprequest.saveas.aspx

它的描述是:

  

将请求上下文保存到磁盘在调试时非常有用。

答案 1 :(得分:2)

您可以编写如下的扩展方法:

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;
    }
}