1

我们有一个 C# ASP.Net MVC 网站。我想将HttpContext.Current.Request对象中包含的所有内容存储在 SQL Server 的表中以供以后分析。

我尝试将对象序列化为字节数组,然后将其存储在 SQL Server 中的二进制字段中,但是序列化程序不会序列化HttpContext对象,因为它没有被标记Serializable

有没有办法将 System.Web 类标记为可序列化?还是有另一种方法可以做到这一点?

4

2 回答 2

1

对于生产代码,我不相信您可以更改 HttpContext 的序列化方面。如果这是非生产,您可以尝试使用 Reflector 和一些插件之类的工具修改程序集以插入 Serializable 属性(但这也可能需要在子类上完成)。

可能更简单的选择是使用反射来枚举所有公共和私有字段。您可以将简单类型转换为它们的字符串表示形式,并在稍微复杂的类上递归。您甚至可以找到一个工具来执行此操作,这个想法可能会被称为询问对象图查看器。

于 2012-10-12T11:37:18.433 回答
0

我建议不要存储整个请求,会有太多噪音。

而是选择您想要的信号。即专门记录您感兴趣的内容,例如特定变量。

于 2012-10-12T11:34:14.853 回答