このエラーが発生する理由は、を使用していArrayList
て、XmlSerializer がクラスを認識していないためですPerson
。1 つの可能性は、シリアライザーをインスタンス化するときに既知の型としてシリアライザーに示すことです。
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);
}