【问题标题】:Storing Simple Data ... Similar to a Cookie?存储简单数据...类似于 Cookie?
【发布时间】:2011-11-04 22:37:51
【问题描述】:

是否可以在 windows 窗体中存储简单数据?类似于 cookie 来存储一个值来告诉最后一次抓取的 ID 是什么。重新加载应用时数据会保留吗?

我已经有一个数据库,如果需要可以使用它,但我正在寻找更简单的存储解决方案。

谢谢

【问题讨论】:

    标签: c#


    【解决方案1】:

    我发现最容易存储和使用设置的方法是创建一个可序列化的设置类;例如:

    [Serializable()]
    public class Settings()
    {
        public object Something { get; set; }
    }
    

    然后,每当您关闭应用程序时,您就可以序列化该类(意思是,将其作为数据保存在某处)

    然后在您的应用程序加载事件中:反序列化保存的数据,您将恢复原样,就像关闭应用程序之前的那种对象一样。

    【讨论】:

    • 存放它的最佳位置是哪里?最容易在运行时访问和更新。
    • 我想最好的存储位置是在用户隔离存储中 msdn.microsoft.com/en-us/library/3ak841sy%28v=VS.100%29.aspx> msdn.microsoft.com/en-us/library/3ak841sy.aspx> 你几乎总是有读/写权限,你可以有不同的每个 Windows 用户的设置几乎没有任何努力。
    【解决方案2】:
    【解决方案3】:

    您有多种选择。

    首先,您可以使用StreamWriter 类自己将值写入文本文件。

    另外,您可以考虑将值存储在 AppConfig 文件中。

    我说 AppConfig 路由可能是最简单的。您要做的就是创建文件(参见链接),然后将其添加到文件中。

    <appSettings>
        <add key="SomeValue" value="SomeString" />
    <appSettings>
    

    然后使用它来访问值。

    ConfigurationSettings.AppSettings["SomeValue"]
    

    然后设置它

    System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    config.AppSettings.Settings.Add("SomeValue", "SomeString");
    config.Save(ConfigurationSaveMode.Modified);
    ConfigurationManager.RefreshSection("appSettings");
    

    希望这会为您指明正确的方向。

    【讨论】:

    • 对于文件的读写,最好提供StreamReader和StreamWriter,但是你希望如何在app.config中保存动态数据?
    • @SaeedAmiri - 我已更改我的答案以推荐 StreamWriter 并解释他们如何使用 appconfig 文件
    • 您可以在执行期间从 app.config 读取,但您不能在执行期间写入并使用它,因为我了解 OP 希望保存一些动态的数据(例如密码)并通过不同的处决。
    • @SaeedAmiri - 不正确,AppConfigs 可以在运行时写入。
    • 不,你想怎么写?喜欢文件?那么为什么要使用它,appconfig 在一个运行时适用于静态数据。 (我的意思是添加动态数量的键)。
    猜你喜欢
    • 2012-03-15
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多