我有一个相当简单的问题,但答案可能很难。 如何让我的代码将2个不同的列表序列化为自己的文件?
文件1中的列表1和文件2中的列表2
我知道如何让代码使用1个文件,但在我的情况下,2个文件会更好。
我没有看到发布我的代码的用法,但如果有人需要它,请问;)
编辑:
我的情况如下:
if (File.Exists("accounts.bin"))
{
Serializer serializer = new Serializer();
ObjectToSerialize objectToSerialize = serializer.DeSerializeObject("accounts.bin");
accounts = objectToSerialize.Accounts;
}
以上是在程序的主类中调用的。
public class Serializer
{
public Serializer()
{
}
public void SerializeObject(string filename, ObjectToSerialize objectToSerialize)
{
Stream stream = File.Open(filename, FileMode.Create);
BinaryFormatter bFormatter = new BinaryFormatter();
bFormatter.Serialize(stream, objectToSerialize);
stream.Close();
}
public ObjectToSerialize DeSerializeObject(string filename)
{
ObjectToSerialize objectToSerialize;
Stream stream = File.Open(filename, FileMode.Open);
BinaryFormatter bFormatter = new BinaryFormatter();
objectToSerialize = (ObjectToSerialize)bFormatter.Deserialize(stream);
stream.Close();
return objectToSerialize;
}
}
[Serializable()]
public class ObjectToSerialize : ISerializable
{
private ObservableCollection<Account> accounts;
//private ObservableCollection<Pokémon> pokedex;
public ObservableCollection<Account> Accounts
{
get { return this.accounts; }
set { this.accounts = value; }
}
/*public ObservableCollection<Pokémon> Pokedex
{
get { return this.pokedex; }
set { this.pokedex = value; }
}*/
public ObjectToSerialize()
{
}
public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
{
info.AddValue("Accounts", Accounts);
}
}
正如你所看到的,我已经尝试了一些东西,但它们没有用。
答案 0 :(得分:1)
如果我知道每个列表中有哪些数据,我可以更好地回答,但我会举几个例子。
List<string> nsv1 = new List<string> { //pretend this is data };
List<string> nsv2 = new List<string> { //pretend this is data };
File.WriteAllLines(@".\path\to\file1.txt", nsv1);
File.WriteAllLines(@".\path\to\file2.txt", nsv2);
如果你让我更好地了解你的数据是什么,我可以提供其他方式来格式化它(比如说它是List<int>
而不是List<string>
)但是这应该给你基本的想法