【问题标题】:Dump properties of HttpRequest转储 HttpRequest 的属性
【发布时间】:2012-10-29 21:34:49
【问题描述】:

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

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

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

【问题讨论】:

  • 看看肖恩的帖子here
  • 您需要查看 HttpRequest 对象的属性,还是需要检查发送的 HTTP 请求?如果是后者,像Fiddler 这样的网络调试工具可能会证明自己很有用。
  • @CodeCaster:我需要分析和检查服务器端的 HttpRequest。所以 Fiddler 不会在这里工作。

标签: c# asp.net debugging


【解决方案1】:

你可以这样写一个扩展方法:

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

【讨论】:

    【解决方案2】:

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

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

    它的描述是:

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

    【讨论】:

    • 我只能选择保存到文件吗?我可以把它像一个字符串一样转储到数据库中吗?
    猜你喜欢
    • 2010-10-10
    • 2019-05-08
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多