亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#操作讀取、寫入XML文檔的實(shí)用方法

 更新時間:2016年04月21日 14:16:55   作者:一個人的長征  
這篇文章主要介紹了C#操作讀取、寫入XML文檔的實(shí)用方法,即即用.NET本身提供的Deserialize和Serialize進(jìn)行反序列化和序列化XML文檔,感興趣的小伙伴們可以參考一下

本文給大家分享一下C#操作(讀取、寫入)XML文檔的實(shí)用方法,這種方法主要是對比較規(guī)范的XML文檔進(jìn)行操作,因?yàn)樗╔ML文檔)和類對象是嚴(yán)格對應(yīng)的,否則在反序列或序列化的時候會出現(xiàn)錯誤。其他的不用多說,直接看示例代碼吧:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;

namespace _01XMLSerialize
{
  class Program
  {
    private static List<UserInfo> list = new List<UserInfo>()
    {
      new UserInfo()
      {
        Id = 1,
        UserName = "張三",
        UserPass = "FDASDFAS",
        Email = "zhangsan@163.com",
        RegTime = DateTime.Now
      },
      new UserInfo()
      {
        Id = 2,
        UserName = "李四",
        UserPass = "FDASDFAS",
        Email = "lisi@163.com",
        RegTime = DateTime.Now
      },
      new UserInfo()
      {
        Id = 3,
        UserName = "王五",
        UserPass = "FDASDFAS",
        Email = "wangwu@163.com",
        RegTime = DateTime.Now
      },
      new UserInfo()
      {
        Id = 4,
        UserName = "趙六",
        UserPass = "FDASDFAS",
        Email = "zhaoliu@163.com",
        RegTime = DateTime.Now
      },
      new UserInfo()
      {
        Id = 5,
        UserName = "田七",
        UserPass = "FDASDFAS",
        Email = "tianqi@163.com",
        RegTime = DateTime.Now
      },
      new UserInfo()
      {
        Id = 6,
        UserName = "王八",
        UserPass = "FDASDFAS",
        Email = "wangba@163.com",
        RegTime = DateTime.Now
      }
    };
    static void Main(string[] args)
    {
      //序列化對象生成文件
      WriteSingleXml();

      //反序列化文件生成對象
      ReadListXml();

      Console.ReadKey();
    }

    /// <summary>
    /// 從XML文件中反序列化對象
    /// </summary>
    private static void ReadListXml()
    {
      //反序列化文件
      Console.WriteLine("反序列化XML文件為集合");
      var reader = new XmlSerializer(typeof(List<UserInfo>));

      using (var fs = File.OpenRead("UserInfo.xml"))
      {
        var result = reader.Deserialize(fs) as List<UserInfo>;

        result.ForEach(Console.WriteLine);
      }
      Console.WriteLine("反序列化成功");
    }

    /// <summary>
    /// 序列化對象到XML文件
    /// </summary>
    private static void WriteSingleXml()
    {
      //序列化集合為xml文件
      Console.WriteLine("序列化集合為XML文件");

      var reader = new XmlSerializer(typeof(List<UserInfo>));
      //寫入文件
      using (var fs = File.OpenWrite("UserInfo.xml"))
      {
        reader.Serialize(fs, list);
      }

      Console.WriteLine("寫入成功");
    }
  }
}

運(yùn)行結(jié)果如圖:

生成的XML文檔如下:

<?xml version="1.0"?>
<ArrayOfUserInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <UserInfo>
  <Id>1</Id>
  <UserName>張三</UserName>
  <UserPass>FDASDFAS</UserPass>
  <Email>zhangsan@163.com</Email>
  <RegTime>2016-04-21T09:15:58.5576551+08:00</RegTime>
 </UserInfo>
 <UserInfo>
  <Id>2</Id>
  <UserName>李四</UserName>
  <UserPass>FDASDFAS</UserPass>
  <Email>lisi@163.com</Email>
  <RegTime>2016-04-21T09:15:58.5576551+08:00</RegTime>
 </UserInfo>
 <UserInfo>
  <Id>3</Id>
  <UserName>王五</UserName>
  <UserPass>FDASDFAS</UserPass>
  <Email>wangwu@163.com</Email>
  <RegTime>2016-04-21T09:15:58.5576551+08:00</RegTime>
 </UserInfo>
 <UserInfo>
  <Id>4</Id>
  <UserName>趙六</UserName>
  <UserPass>FDASDFAS</UserPass>
  <Email>zhaoliu@163.com</Email>
  <RegTime>2016-04-21T09:15:58.5576551+08:00</RegTime>
 </UserInfo>
 <UserInfo>
  <Id>5</Id>
  <UserName>田七</UserName>
  <UserPass>FDASDFAS</UserPass>
  <Email>tianqi@163.com</Email>
  <RegTime>2016-04-21T09:15:58.5576551+08:00</RegTime>
 </UserInfo>
 <UserInfo>
  <Id>6</Id>
  <UserName>王八</UserName>
  <UserPass>FDASDFAS</UserPass>
  <Email>wangba@163.com</Email>
  <RegTime>2016-04-21T09:15:58.5576551+08:00</RegTime>
 </UserInfo>
</ArrayOfUserInfo>

以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)C#程序設(shè)計有所幫助。

相關(guān)文章

  • C#中逆變的實(shí)際應(yīng)用場景詳解

    C#中逆變的實(shí)際應(yīng)用場景詳解

    在好多的.net的書籍中都看到過逆變和協(xié)變的概念,也在網(wǎng)上搜了一些關(guān)于這兩個概念的解釋,但是一直感覺似懂非懂的,直到最近在項(xiàng)目中實(shí)際遇到了一個問題,恰好用到了逆變,下面這篇文章主要給大家介紹了關(guān)于C#中逆變的實(shí)際應(yīng)用場景,需要的朋友可以參考下
    2022-01-01
  • C#獲取應(yīng)用程序路徑或Web頁面目錄路徑

    C#獲取應(yīng)用程序路徑或Web頁面目錄路徑

    這篇文章介紹了C#獲取應(yīng)用程序路徑或Web頁面目錄路徑的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 解決安裝VS2008無法更改默認(rèn)路徑的問題

    解決安裝VS2008無法更改默認(rèn)路徑的問題

    這篇文章主要介紹了安裝VS2008無法更改默認(rèn)路徑的解決方法,需要的朋友可以參考下。
    2016-06-06
  • C#使用Sleep(Int32)方法實(shí)現(xiàn)動態(tài)顯示時間

    C#使用Sleep(Int32)方法實(shí)現(xiàn)動態(tài)顯示時間

    這篇文章主要為大家詳細(xì)介紹了C#如何使用Sleep(Int32)方法實(shí)現(xiàn)動態(tài)顯示時間,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,有需要的小伙伴可以參考下
    2024-01-01
  • C#中的委托詳解

    C#中的委托詳解

    本文詳細(xì)講解了C#中的委托,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#抽象類和接口的區(qū)別分析

    C#抽象類和接口的區(qū)別分析

    這篇文章主要介紹了C#抽象類和接口的區(qū)別,詳細(xì)的分析了抽象類與接口的概念與特性,并對二者作出比對說明,需要的朋友可以參考下
    2014-10-10
  • 基于WPF實(shí)現(xiàn)用戶頭像選擇器的示例代碼

    基于WPF實(shí)現(xiàn)用戶頭像選擇器的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何基于WPF實(shí)現(xiàn)用戶頭像選擇器,文中的示例代碼簡潔易懂,對我們學(xué)習(xí)WPF有一定幫助,感興趣的可以了解一下
    2022-07-07
  • C#實(shí)現(xiàn)跑馬燈效果的示例代碼

    C#實(shí)現(xiàn)跑馬燈效果的示例代碼

    跑馬燈效果,功能效果大家應(yīng)該都知道,就是當(dāng)我們的文字過長,整個頁面放不下的時候(一般用于公告等),可以讓它自動實(shí)現(xiàn)來回滾動。本文將利用C#實(shí)現(xiàn)這一效果,感興趣的可以了解一下
    2022-11-11
  • 解析使用C# lock同時訪問共享數(shù)據(jù)

    解析使用C# lock同時訪問共享數(shù)據(jù)

    本篇文章是對使用C# lock同時訪問共享數(shù)據(jù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C#實(shí)現(xiàn)窗體間傳值實(shí)例分析

    C#實(shí)現(xiàn)窗體間傳值實(shí)例分析

    這篇文章主要介紹了C#實(shí)現(xiàn)窗體間傳值的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了C#針對窗體間傳值的處理技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11

最新評論