首页 > 学院 > 开发设计 > 正文

【C#】使用C#将类序列化为XML

2019-11-17 02:28:19
字体:
来源:转载
供稿:网友

【C#】使用C#将类序列化为xml

直接上代码:

 public static class XmlSerializer    {        public static void SaveToXml(string filePath, object sourceObj, Type type)        {            if (!string.IsNullOrWhiteSpace(filePath) && sourceObj != null)            {                type = type != null ? type : sourceObj.GetType();                using (StreamWriter writer = new StreamWriter(filePath))                {                    System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(type);                    XmlSerializerNamespaces nameSpace = new XmlSerializerNamespaces();                                        nameSpace.Add("", ""); //not ot output the default namespace                    xmlSerializer.Serialize(writer, sourceObj, nameSpace);                }            }        }        public static object LoadFromXml(string filePath, Type type)        {            object result = null;            if (File.Exists(filePath))            {                using (StreamReader reader = new StreamReader(filePath))                {                    System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(type);                    result = xmlSerializer.Deserialize(reader);                }            }            return result;        }
模型类,要序列化的数据结构:
 //[XmlRoot("sequence")]    public class Sequence    {        //[XmlAttribute("id")]        public string Id { get; set; }        // [XmlElement("media")]        public Media Media { get; set; }        public Sequence()        {            Id = "序列2";            Media = new Media();        }    } //[XmlRoot("media")]    public class Media    {       // [XmlAttribute("id")]        public string Id { get; set; }        //[XmlElement("video")]        public Video Video { get; set; }       // [XmlElement("audio")]        public Audio Audio { get; set; }        public Media()        {            Id = "media one";            Video = new Video();            Audio = new Audio();        }    } public class Video    {        public string name { get; set; }        public Video()        {            name = "video 12";        }    }  public class Audio    {        public string name { get; set; }        public Audio()        {            name = "video 12";        }    }

实际使用:

class PRogram   {       static void Main(string[] args)       {           Sequence model = new Sequence();           XmlSerializer.SaveToXml("text.xml", model, model.GetType());       }   }

结果:

<?xml version="1.0" encoding="utf-8"?><Sequence>  <Id>序列2</Id>  <Media>    <Id>media one</Id>    <Video>      <name>video 12</name>    </Video>    <Audio>      <name>video 12</name>    </Audio>  </Media></Sequence>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表