我正在使用C#代码隐藏页面创建一个Web服务器。 我想要的是一个用户在页面上查看和提交内容, 并且数据存储在服务器端,以便它是持久的, 并且其他用户可以查看此数据。
我是否限制将其保存到平面文件或数据库,或者是否有某种功能我可以在C#或.NET中用于此目的,比如一个持久的跨会话变量或什么? (对于每个不同的用户,正常的静态变量会有所不同吗?)
答案 0 :(得分:2)
任何静态变量对所有用户都是通用的,但您应该使用Application。它就像Session,但对所有用户都是通用的。如果您需要持久化应用程序重置,请使用数据库。
答案 1 :(得分:1)
您可以测试这些缓存变量
Cache["Key"] = yourValue;
Application["Key"] = yourValue;
您有另一个与会话关联的缓存,但它不是全局的:
Session["Key"] = value;
您的网页中有另一个缓存
ViewState["Key"] = value;
答案 2 :(得分:0)
如果您没有太多数据,请将其存储到内存中,然后使用XmlSerializer
或BinaryFormatter
将其写入磁盘。
您需要将数据作为应用程序单例存储在内存中,可从您的页面集中的任何位置访问。
答案 3 :(得分:-1)
我是限制将其保存到flatfile或数据库,还是我可以使用某种功能 在C#或.NET中用于此目的?
没有其他功能。请参阅,平面文件(即您编写的文件或其他服务写入的文件)和数据库(可以是SQL数据库,文档数据库或任何其他形式)在逻辑上涵盖了持久化数据的所有可能性。从理论上讲,我认为理论上不会有任何其他方式存在于平面文件(即您管理的文件)或数据库(某些驱动程序或服务器进程管理的文件)中。
你问的是“我有一台收音机,它可以打开或关闭。它可以进入其他任何状态吗?” - 坏消息,不,无论是打开还是关闭。
.NET框架中的任何功能都可以归结为最后命名的两个功能。