2

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

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

我正在寻找一种类似于 Linqpad 中的方法,它可以打印出所有带有值的属性。

4

2 回答 2

2

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

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

它的描述是:

将请求上下文保存到磁盘对调试很有用。

于 2012-11-09T14:50:46.557 回答
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;
    }
}
于 2012-11-09T14:53:14.547 回答