六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 87|回复: 0

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

[复制链接]

升级  60%

6

主题

6

主题

6

主题

童生

Rank: 1

积分
30
 楼主| 发表于 2013-2-5 09:05:52 | 显示全部楼层 |阅读模式
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();
            }
        }

        [XmlRoot("cat")]
        public class Cat
        {
            //www.3ppt.com定义Color属性的序列化为cat节点的属性
            [XmlAttribute("color")]
            public string Color { get; set; }

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

            //设置Saying属性序列化为Xml子元素
            [XmlElement("saying")]
            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特性修饰要求序列化程序不序列化修饰属性。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表