另存为项目

时间:2012-04-07 11:37:36

标签: c# wpf save

如何存储(保存)变量,以便在我关闭并再次运行程序后可以使用它?我不能使用saveFileDialog,因为它是2D数组。其他程序有自己的扩展。我也可以进行自己的扩展吗?像“将项目另存为......”之类的东西。

2 个答案:

答案 0 :(得分:1)

如果要将某些对象保存到磁盘,则需要为数据设计一些文件格式,或者使用现有的一般文件格式。

在.Net中,最简单的方法是使用the binary formatter来执行此操作:

void Save(SomeType obj, string fileName)
{
    using (var stream = File.OpenWrite(fileName))
    {
        var formatter = new BinaryFormatter();
        formatter.Serialize(stream, obj);
    }
}

obj对象及其引用的所有对象必须是可序列化的。大多数原始类型已经是可序列化的,您可以使用the [Serializable] attribute将您自己的类型序列化。

Load()方法类似,但会使用File.OpenRead()formatter.Deserialize()

如何选择文件名取决于您,但您当然可以使用SaveFileDialog

答案 1 :(得分:1)

.NET中提供了不同的sirialization类型。他们每个人都有其优点和缺点。因此,您应该选择最适合您需求的产品。 值得花些时间并至少对这些内容进行总体概述。

例如:

最常见的方法是二进制序列化(由svick提供),它速度快且内存占用少,但在可伸缩性方面肯定不如其他方法灵活。原因 标准.NET序列化也会保存类型信息,这会导致与实际类型保存的紧密耦合,而不仅仅是数据。

在一个anwer中很难解释所有内容,所以我建议你看看这里

Serialization and Types of Serialization in .Net

祝你好运