XML(6)自己寫一個xml序列化器

黄舟
發布: 2017-02-10 16:35:07
原創
1517 人瀏覽過

上篇已經介紹到了透過序列化器將內容寫入到xml檔案中。這裡還是用person類來寫。

1、先寫一個person物件

<span style="font-family:Microsoft YaHei;font-size:18px;">person p=new person() {Name = "istari", Age = 22, Email = "1061399756@qq.com"};</span>
登入後複製

2、然後寫一個方法用於把這個物件用我們的方式進行序列化,其中這裡用到了反射。

<span style="font-family:Microsoft YaHei;font-size:18px;">MySerialize(p, typeof(person));</span>
登入後複製

3、在這個方法裡面寫自己的序列化器


<span style="font-family:Microsoft YaHei;font-size:18px;">private static void MySerialize(object obj, Type type)
        {
            //创建一个XDocument对象
            XDocument document = new XDocument();
            //写入xml文件,把类名作为根节点
            string nsStr = type.ToString();
            string className = nsStr.Substring(nsStr.LastIndexOf(&#39;.&#39;) + 1);
            //写入根节点
            XElement rootElement = new XElement(className);
            //获取当前类型中的所有的属性
            PropertyInfo[] properties = type.GetProperties();
            //遍历
            foreach (PropertyInfo  item in properties)
            {
                rootElement .SetElementValue (item.Name ,item.GetValue (obj,null));
            }
            document .Add (rootElement );
            document .Save (className +".xml");
        }</span>
登入後複製

其中用到反射來獲取person類中的所有屬性。

Result

<span style="font-family:Microsoft YaHei;font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<person>
  <Name>istari</Name>
  <Age>22</Age>
  <Email>1061399756@qq.com</Email>
</person></span>
登入後複製



以上就是XML(6)自己寫一個xml序列化器的內容,更多相關內容請追蹤PHP中文網(www.php.cn)!




相關標籤:
xml
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!