分享

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

 昵称10504424 2013-02-19
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特性修饰要求序列化程序不序列化修饰属性

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多