橘子花为谁开 发表于 2013-2-5 09:05:52

asp.net如何通过自定义对象实现xml的序列化代码

asp.net如何通过自定义对象实现xml的序列化代码

System.Xml.Serialization命名空间中有一系列的特性类,用来控制复杂类型序列化的控制。例如 XmlElementAttribute、XmlAttributeAttribute、XmlArrayAttribute、 XmlArrayItemAttribute、XmlRootAttribute等等。

看一个小例子,有一个自定义类Cat,Cat类有三个属性分别为Color,Saying,Speed。

    namespace UseXmlSerialization
    {
      class Program
      {
            static void Main(string[] args)
            {
                //声明一个猫咪对象
                var c = new Cat { Color = "White", Speed = 10, Saying = "White or black,so long as the cat can catch mice,it is a good cat" };

                //序列化这个对象
                XmlSerializer serializer = new XmlSerializer(typeof(Cat));

                //将对象序列化输出到控制台
                serializer.Serialize(Console.Out, c);

                Console.Read();
            }
      }

      
      public class Cat
      {
            //www.3ppt.com定义Color属性的序列化为cat节点的属性
            
            public string Color { get; set; }

            //要求不序列化Speed属性
            
            public int Speed { get; set; }

            //设置Saying属性序列化为Xml子元素
            
            public string Saying { get; set; }
      }
    }<SPAN style="FONT-FAMILY: verdana, Arial, Helvetica, sans-serif" face="verdana, Arial, Helvetica, sans-serif"><SPAN class=Apple-style-span style="FONT-SIZE: 14px; LINE-HEIGHT: 21px; WHITE-SPACE: normal">
    </SPAN></SPAN>


可以使用XmlElement指定属性序列化为子节点(默认情况会序列化为子节点);或者使用XmlAttribute特性制定属性序列化为Xml节点的属性;还可以通过XmlIgnore特性修饰要求序列化程序不序列化修饰属性。
页: [1]
查看完整版本: asp.net如何通过自定义对象实现xml的序列化代码