读/写三个不同对象列表的最佳方法

时间:2014-08-20 06:56:03

标签: c# database object file-io

我正在重写我创建的程序,其中有一个带索引的文件路径表,一个带索引的标签表,以及一个连接这两个索引的表。在我在数据集中使用三个数据表之前,它非常容易读取和写入磁盘。

这次我使用的是对象列表,文件对象,标记对象和索引对象。我真的更喜欢这个,因为桌面设置了我自己的函数来返回文件和相关标签。

但是现在我自己将这三个“表”保存到磁盘然后再次读取它们。我已经找到了将对象列表写入二进制或XML的东西,但我真的很想把它写入一个文件。这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:0)

为什么'将对象列表写入XML'不是单个文件?创建一个包装类,它包含这三个列表,然后序列化这个包装类。

答案 1 :(得分:0)

  

但是现在我自己来保存这三张桌子"到磁盘和   然后再读一遍。我发现了有关编写对象列表的内容   二进制或XML,但我真的希望所有写入一个文件。   这样做的最佳方式是什么?

您可以创建一些DTO类来包装所有列表,例如:

public class ListsWrapper
{
  IList<string> FirstList{get;set;}
  IList<string> SecondList{get;set;}
  IList<string> ThirdList{get;set;}
}

实例化:

var wrapper = new ListsWrapper();
wrapper.FirstList = new List<string>...;
wrapper.SecondList = new List<string>...;
wrapper.ThirdList = new List<string>...;

之后,只需将其序列化为光盘上的单个文件:

Stream stream = File.Open(@"c:\tables.bin", FileMode.Create);
BinaryFormatter bFormatter = new BinaryFormatter();
bFormatter.Serialize(stream, wrapper);
stream.Close();