我们有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和其他复杂对象进行此操作。
DataContractSerializer
时,构造函数有一个重载,可以将已知类型的IEnumerable<Type>
列表作为参数。您可以使用以下代码让它接受数组列表中的任何类型:new DataContractSerializer(typeof(ArrayList), list.Select(x => x.GetType()))
。 - Tim S.List<BaseClass>
。 - Tim S.