我们有一个C#ASP.Net MVC网站。我想将HttpContext.Current.Request
对象中包含的所有内容存储在SQL Server的表中,以供以后分析。
我尝试将对象序列化为字节数组,然后将其存储在SQL Server的二进制字段中,但序列化程序不会序列化HttpContext
对象,因为它未标记为Serializable
。
有没有办法将System.Web类标记为可序列化?或者还有另一种方法可以实现这一目标吗?
答案 0 :(得分:1)
对于生产代码,我不相信您可以更改HttpContext的序列化方面。如果这是非生产的,您可以尝试使用Reflector和一些插件等工具修改Assembly以插入Serializable属性(但也可能需要在子类上完成)。
可能更容易的选择是使用Reflection来枚举所有公共和私有字段。您可以将简单类型转换为其字符串表示形式,并对稍微复杂的类进行递归。你甚至可以找到一个工具来做这个,这个想法可能会被提到问一个对象图形查看器。
答案 1 :(得分:0)
我建议不要存储整个请求,否则会有太多噪音。
而是挑选出你想要的信号。这是特别记录您感兴趣的内容,例如特殊变量。