如果我有外部XML供稿和內部類,自動讀取供稿並將數據映射到類的新實例的最佳方法是什麼?將XML數據映射到C#中的類
因此,如果XML提要就像
<people>
<person>
<name>Bob</name>
</person>
<person>
<name>Bill</name>
</person>
</people>
我的類Person有一個屬性名稱。現在我正在使用XmlReader,但這似乎效率低下
如果我有外部XML供稿和內部類,自動讀取供稿並將數據映射到類的新實例的最佳方法是什麼?將XML數據映射到C#中的類
因此,如果XML提要就像
<people>
<person>
<name>Bob</name>
</person>
<person>
<name>Bill</name>
</person>
</people>
我的類Person有一個屬性名稱。現在我正在使用XmlReader,但這似乎效率低下
將xml映射到類中的最簡單方法是使用xml序列化。 -.Net框架附帶了您需要的一切。 問題是,您的xml需要以rigth格式被解串器讀取。
序列化實例:
XmlSerializer serializer = new XmlSerializer(typeof(List<Person>));
TextWriter textWriter = new StreamWriter("people.xml");
serializer.Serialize(textWriter, people);
textWriter.Close();
反序列化實例
XmlSerializer deserializer = new XmlSerializer(typeof(List<Person>));
TextReader textReader = new StreamReader("people.xml");
List<Person> people;
people= (List<Person>)deserializer.Deserialize(textReader);
textReader.Close();
XML結果
的XML應該是這樣的(我沒有測試):
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Person>
<Name>Bob</Name>
</Person>
<Person>
<Name>Bill</Name>
</Person>
</ArrayOfPerson>
我對序列化很熟悉,但我無法控制XML提要的格式。 – bep
如果您對源格式「無法控制」,那麼您將不得不自己解析提要。其他任何事都是蠻幹的。 XmlReader非常適合這樣做。 –
您現在的執行方式是「低效率」?服務表現/代碼? – Fox32