- 关 键 词:
- .net framework
人们一直高喊XML是解决系统互联问题的关键, 而.NET framework 也为处理XML数据提供了许多不同的类库. XmlDocument 类能让你像处理文件一样处理XML 数据, 而XmlReader, XmlWriter, 和它们的派生类使你能够将XML 数据做为数据流处理. XmlSerializer 则提供了另外的方法, 它使你能够将自己的对象串行和反串行化为XML. 串行化数据既能够让你像处理文件一样对数据进行随机存取, 同时又能够跳过你不感兴趣的元素. 在本文中, 我将向你展示如何使用XmlSerializer类以及如何在你的类中添加属性来控制串行化过程.
XmlSerializer
XmlSerializer类存在于System.Xml.Serialization命名空间的System.Xml.dll中, 它用一种高度松散耦合的方式提供串行化服务. 你的类不需要继承特别的基类, 而且它们也不需要实现任何特别的接口. 相反的, 你只需要在你的类或者这些类的公共域以及读/写属性里加上自定义的属性. XmlSerializer 通过相反映射读取这些属性并用它们将你的类和类成员映射到XML元素和属性.
将XML 映射到对象
考虑表A中的XML语句, 哪一个正确的描述了一家电影院中上映的电影呢?
表A
| <?xml version="1.0" encoding="utf-8" ?> <theater> <name>The Camelot</name> <phone>(888)665-2222</phone> <movie minutes="120" stars="2"> <title>The Score</title> <rating>R</rating> <showing>16:15:00</showing> <showing>19:05:00</showing> <showing>21:40:00</showing> </movie> <movie minutes="100"> <title>Shrek</title> <rating>PG-13</rating> <showing>16:00:00</showing> <showing>19:00:00</showing> <showing>21:40:00</showing> </movie> </theater> |
表B中定义了一个Theater(电影院)类, 它包含了XmlSerializer使用的属性映射.
表B
| using System; using System.Xml.Serialization; namespace Articles.TechRepublic.XmlSerialization { [XmlRoot( "theater" )] public class Theater { [XmlElement( "name" )] public string Name = ""; [XmlElement( "phone" )] public string Phone = ""; [XmlElement( "movie" )] public Movie[] Movies; public override string ToString() { string movies = ""; if ( Movies != null ) foreach ( Movie movie in Movies ) movies += " " + movie.ToString(); return String.Format( " ", Name, Phone, movies ); } } |
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询



