将C#对象保存到磁盘而不进行序列化?

Dea*_*ean 4 c# asp.net serialization

我们有一个现有的asp.net 4.0网站,它使用HttpRuntime.Cache做很多事情.它是在我开始处理之前创建的,现在我们遇到了缓存被清除和网站崩溃的问题,因为它总是希望缓存在那里(我知道......他们认为缓存是什么!?).

所以我需要的是一个永久性的替换缓存,所以我可以将它交换为HttpRuntime.Cache,而不会影响网站.我已经看过序列化,但并不是所有的对象都是可序列化的,并且它们不是一个可以将它们全部序列化的选项(有太多它们分散在各处).

有没有办法将任何内存对象/变量/任何内容保存到磁盘,并在以后读取它,而不必序列化它?

更新:

感谢您的评论和答案到目前为止.从你的想法开始,我做了一些谷歌搜索,并发现这篇文章演示了(如果你可以下载一个示例解决方案)如何在.Net 4.0中使用自己的自定义缓存提供程序.我还没有能够将它集成到我们的网络应用程序中并给它一个适当的测试(希望今天晚些时候我能够)但我想我会把它放在这里,看看你是否有任何想法. ..你觉得怎么样,我应该注意哪些警告?或者这是一个可行的(也是非常临时的)解决方案?

用于Web和非Web应用程序的基于文件的缓存以及扩展ASP.NET 4.0 OutputCacheProvider

bur*_*ION 5

您可以使用反射编写自己的"序列化",获取所有原始字段并将其保存为类路径和值.它将是长操作,但您可以将类保存为文件.更好的解决方案是使用实际序列化.


Dea*_*ean -1

这个链接确实有效,所以这将是我的答案。感谢大家的帮助!

适用于 Web 和非 Web 应用程序的基于文件的缓存以及扩展 ASP.NET 4.0 OutputCacheProvider