我有一些類型的對象,讓我們說Foo
,看起來像:如何反序列化XML列出<T>
public class Foo
{
[XmlElement("id")]
public string Id {get; set;}
[XmlElement("name")]
public string Name {get; set;}
}
我也有XML:
<root>
<foo>
<id>1</id>
<name>name_1</name>
</foo>
<foo>
<id>2</id>
<name>name_2</name>
</foo>
</root>
什麼我做錯了什麼努力反序列化XML到列表使用XmlDeserializer
以下代碼?
var list = new List<Foo>();
var serializer = new XmlSerializer(typeof(List<Foo>));
using (var reader = new StringReader(xml))
{
list = (List<Foo>)serializer.Deserialize(reader); //error here
}
獲取例外:
System.InvalidOperationException
<root xmlns=''> unexprected .
「有些反射錯誤」 - 你能更具體嗎?通常情況下,您只能使用XmlSerializer來反序列化也是用XmlSerializer *生成的XML。 (或者至少,這是更有可能的工作......) –
好吧,從XmlElement屬性中刪除了類型規範,現在錯誤消失了。在sql數據庫中生成XML – Sergio
我做了一個快速測試,序列化你的類的一個實例; typeof(int)會產生反射錯誤。它適用於typeof(字符串)。 –