2011-09-18 29 views

回答

6

接口上的XmlSerializer扼流圈。所以你可以在序列化之前將它轉換爲數組或具體的List<T>。你也應該絕對specify known types,因爲這object[]將無法​​正常工作。序列化程序必須事先知道您將要處理的所有類型。這樣,它會發出類型信息到生成的XML:

var data = list.ToArray(); 
var knownTypes = new[] { typeof(Foo), typeof(Bar) }; 
var serializer = new XmlSerializer(data.GetType(), knownTypes); 
serializer.Serialize(someStream, data); 

或者,如果你不想與這一切麻煩,只是爲你的對象,你可以使用JSON一些人類可讀的持久性:

var serializer = new JavaScriptSerializer(); 
string json = serializer.Serialize(list); 

如果你不關心人的可讀性,一個二進制串行器應該沒問題。

相關問題