序列化HttpContext对象存储在数据库中(Serializing HttpContext ob

2019-10-17 07:23发布

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

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

有没有什么办法来标记的System.Web类为可序列化? 还是有另一种方式来做到这一点?

Answer 1:

对于生产代码,我不相信你可以改变的HttpContext的系列化方面。 如果是这种非生产,你可以尝试修改大会插入Serializable属性(但可能需要在子类做得太)使用像反射和一些插件的工具。

什么可能是更容易的选择是使用反射来枚举所有公共和私人领域。 你可以简单类型转换为它们的字符串表示和递归对一些稍微复杂的类。 你甚至可以找到一个工具来做到这一点,这个想法可能会被称为询问的对象图浏览器。



Answer 2:

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

相反,挑选出你想要的信号。 这是专门记录你所感兴趣的东西,比如特殊变量。



文章来源: Serializing HttpContext object to store in a database