1

我在运行时将一些字符串值存储在数组列表中。当应用程序关闭时,我想将数组列表中的数据存储在另一个位置,以便下次应用程序启动时可以打开并检索数据。有哪些可能的方法来做到这一点?

4

2 回答 2

1

您可以使用ReadingWriting从/到文件或将值存储在 Windows 注册表中。对于从/向文件读取/写入,请使用:

StreamReader sr = new StreamReader(@"C:/store.dll"); //for reading
StreamWriter sw = new StreamWriter(@"C:/store.dll"); //for writing

这是基本的。这里有两篇很棒的文章:

  1. 从文件中恢复
  2. 写入文件

我用它来存储一个简单游戏的高分。:)

是一个很好的使用 Windows 注册表的教程。

于 2012-07-24T17:00:49.790 回答
0

您可以Serialize将 ArrayList 写入磁盘,然后将文件加载Deserialize到对象中:

    public static XDocument Serialize<T>(T objectIn, Type[] extraTypes)
    {
        try
        {
            var target = new XDocument();
            XmlSerializer s = extraTypes != null ? new XmlSerializer(objectIn.GetType(), extraTypes) : new XmlSerializer(objectIn.GetType());
            s = extraTypes != null
                ? new XmlSerializer(objectIn.GetType(), extraTypes)
                : new XmlSerializer(objectIn.GetType());

            var writer = target.CreateWriter();

            s.Serialize(writer, objectIn);

            writer.Close();
            return target;
        }
        catch (Exception ex)
        {
            throw new Exception(string.Format("Could not serialize object: {0}", ex.Message));
        }
    }

    public static T Deserialize<T>(XDocument xDocument, string defaultNamespace)
    {
        XmlSerializer s = new XmlSerializer(typeof(T), defaultNamespace);

        T result = (T)s.Deserialize(xDocument.CreateReader());

        return result;
    }
于 2012-07-24T16:59:22.343 回答