您得到此錯誤的原因是因爲您使用的是ArrayList
,而XmlSerializer不知道您的Person
類。一種可能性是實例序列化時,指示串行作爲已知類型:
var serializer = new XmlSerializer(typeof(ArrayList), new Type[] { typeof(Person) });
但更好的方法是使用一個通用的List<T>
代替ArrayList中。因此,讓我們假設你有以下型號:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
現在你可以有人名單:
List<Person> people = new List<Person>();
people.Add(new Person { FirstName = "John", LastName = "Smith" });
people.Add(new Person { FirstName = "John 2", LastName = "Smith 2" });
,你可以序列:
using (var writer = XmlWriter.Create("fs.xml"))
{
var serializer = new XmlSerializer(typeof(List<Person>));
serializer.Serialize(writer, people);
}
聽起來像你的問題是與'this.array'。 – 2012-04-15 08:09:40
根本不要使用'ArrayList',使用'List'。只有在使用框架1.x時才需要'ArrayList',並且Visual Studio 2010甚至無法以框架1.x爲目標... –
Guffa
2012-04-15 08:12:22
'this.array'的類型是什麼,它包含了什麼? – CodesInChaos 2012-04-15 08:13:28