gpt4 book ai didi

c# - 序列化和反序列化多种类型的对象

转载 作者:行者123 更新时间:2023-11-30 16:17:23 25 4
gpt4 key购买 nike

我们有 2 个(或更多)类:

class numOne
{
string name;
int age;
}
class numTwo
{
Bitmap pImage;
}

我有一个包含这些类实例的 ArrayList:

ArrayList list = new ArrayList();
numOne n1 = new numOne(){ name="sth", age =18 };
numTwo n2 = new numTwo(){ pImage = new Bitmap("FileAddress") };
list.Add(n1);
list.Add(n2);

我知道我们什么时候上A类课。如何使用 BinaryFormatter 序列化和反序列化对象(如 List<>)?我不知道如何将此操作用于 ArrayList 和其他类似的复杂对象。

最佳答案

这对你有用吗?

 [Serializable]
class numOne
{
public string name;
public int age;
}
[Serializable]
class numTwo
{
public string rg;
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
//Serialization
using (var fs = new FileStream("DataFile.dat", FileMode.Create))
{
var listToBeSerialized = new ArrayList(){
new numOne() { name = "sth", age = 18 },
new numTwo() { rg = "FileAddress" }
};
new BinaryFormatter().Serialize(fs, listToBeSerialized);
}

//Deserialization
using (var fs = new FileStream("DataFile.dat", FileMode.Open))
{
var deserializedList = (ArrayList)new BinaryFormatter().Deserialize(fs);
}
}

对于 Bitmap 类,您必须检查它是否可序列化。

关于c# - 序列化和反序列化多种类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17234196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com