精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

淺談XML與對象的序列化與反序列化

開發(fā)
今天我們將談到XML與對象的序列化與反序列化。并且會附上一些簡單的序列化與反序列化方法,供大家使用。

這篇文章主要講述XML與對象的序列化與反序列化。并且會附上一些簡單的序列化與反序列化方法,供大家使用。

假設我們在一個Web項目中有這樣兩個類

  1. public class Member   
  2. {  
  3.   public string Num { getset; }  
  4.   public string Name { getset; }  
  5. }  
  6. public class Team  
  7. {  
  8.    public  string Name;  
  9.    public  List<Member> Members { getset; }  

假設我們需要把Team類的一個實例POST到一個URL,

  當然,使用Form隱藏域提交就可以完成該功能。

  如果該Team包括30條數(shù)據(jù)呢?

  為了區(qū)分每個Member,我們得給參數(shù)的名字加上后綴。這就要一大串的隱藏域來完成:

  1. <!--使用Razor來演示-->@model Team  
  2. <form id="submitForm" action="http://www.johnconnor.com/team" method="post"> 
  3. <input type="hidden" name="TeamName" value="@Model.Name" /> 
  4. <input type="hidden" name="MemberNum1" value="@Model.Members[0].Num" /> 
  5. <input type="hidden" name="MemberName1" value="@Model.Members[0].Name" /> 
  6. ...<!--省略28X2個input標簽--> 
  7. <input type="hidden" name="MemberNum30" value="@Model.Members[29].Num" /> 
  8. <input type="hidden" name="MemberName30" value="@Model.Members[29].Name" /> 
  9. </form> 
  10. <script type="text/javascript"> 
  11.     document.getElementById("submitForm").submit();  
  12. </script> 

  還敢想象一下如果Team再復雜一些,嵌套再多一些的情況么?

  呃,即使你愿意這么傳數(shù)據(jù),對方看到一坨參數(shù)名就夠頭疼了。

  我們都知道對象是不能在網(wǎng)絡中直接傳輸?shù)模贿^還有補救的辦法。

  XML(Extensible Markup Language)可擴展標記語言,本身就被設計用來存儲數(shù)據(jù),任何一個對象都可以用XML來描述。以Team類為例:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <Team xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
  3.   <Name>Development</Name> 
  4.   <Members> 
  5.     <Member> 
  6.       <Num>001</Num> 
  7.       <Name>Marry</Name> 
  8.     </Member> 
  9.     <Member> 
  10.       <Num>002</Num> 
  11.       <Name>John</Name> 
  12.     </Member> 
  13.   </Members> 
  14. </Team> 

   這樣一個XML文檔就表示了Team一個實例。

  聰明的看官應該已經想到,XML是可以作為對象信息的載體在網(wǎng)絡中傳輸,因為它是文本形式的。

  怎么進行XML文檔與對象的相互轉換呢?

  XmlSerializer類就是干這個活的。

      命名空間:System.Xml.Serialization

      程序集:System.Xml(在 system.xml.dll 中)

  現(xiàn)在這里展示了一個提供序列化與反序列化方法的EncodeHelper類。

  Deserialize方法將XML字符串轉換為指定類型的對象;

  Serialize方法則將對象轉換為XML字符串。

  1. /// <summary>  
  2.  /// 提供xml文檔序列化 反序列化  
  3.  /// </summary>  
  4.  public sealed class EncodeHelper  
  5.  {  
  6.      /// <summary>  
  7.      /// 反序列化XML字符串為指定類型  
  8.      /// </summary>  
  9.      public static object Deserialize(string Xml, Type ThisType)  
  10.      {  
  11.          XmlSerializer xmlSerializer = new XmlSerializer(ThisType);  
  12.          object result;  
  13.          try 
  14.          {  
  15.              using (StringReader stringReader = new StringReader(Xml))  
  16.              {  
  17.                  result = xmlSerializer.Deserialize(stringReader);  
  18.              }  
  19.          }  
  20.          catch (Exception innerException)  
  21.          {  
  22.              bool flag = false;  
  23.              if (Xml != null)  
  24.              {  
  25.                  if (Xml.StartsWith(Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble())))  
  26.                  {  
  27.                      flag = true;  
  28.                  }  
  29.              }  
  30.              throw new ApplicationException(string.Format("Couldn't parse XML: '{0}'; Contains BOM: {1}; Type: {2}.",                 Xml, flag, ThisType.FullName), innerException);  
  31.          }  
  32.          return result;  
  33.      }  
  34.  
  35.      /// <summary>  
  36.      /// 序列化object對象為XML字符串  
  37.      /// </summary>  
  38.      public static string Serialize(object ObjectToSerialize)  
  39.      {  
  40.          string result = null ;  
  41.          try 
  42.          {  
  43.          XmlSerializer xmlSerializer = new XmlSerializer(ObjectToSerialize.GetType());  
  44.            
  45.          using (MemoryStream memoryStream = new MemoryStream())  
  46.          {  
  47.              XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, new UTF8Encoding(false));  
  48.              xmlTextWriter.Formatting = Formatting.Indented;  
  49.              xmlSerializer.Serialize(xmlTextWriter, ObjectToSerialize);  
  50.              xmlTextWriter.Flush();  
  51.              xmlTextWriter.Close();  
  52.              UTF8Encoding uTF8Encoding = new UTF8Encoding(falsetrue);  
  53.              result= uTF8Encoding.GetString(memoryStream.ToArray());  
  54.          }  
  55.          }  
  56.          catch (Exception innerException)  
  57.          {  
  58.              throw new ApplicationException("Couldn't Serialize Object:" + ObjectToSerialize.GetType().Name, innerException);  
  59.          }  
  60.          return result;  
  61.      }  
  62.  } 

  要使用這個類需要添加以下引用

 

  1.   using System;  
  2.   using System.Text;  
  3.   using System.IO;  
  4.   using System.Xml;  
  5.   using System.Xml.Serialization; 

 

  下面我們用一個控制臺程序來演示一下這個類是如何工作的。這里是程序的Main函數(shù)。

  1. static void Main(string[] args)  
  2.         {  
  3.             List<Member> Members = new List<Member>();  
  4.             Member member1 = new Member { Name = "Marry"Num = "001" };  
  5.             Member member2 = new Member { Name = "John"Num = "002" };  
  6.             Members.Add(member1);  
  7.             Members.Add(member2);  
  8.             Team team = new Team { Name = "Development"MembersMembers = Members };  
  9.             var xml =EncodeHelper.Serialize(team);//序列化  
  10.             Console.Write(xml);//打印序列化后的XML字符串  
  11.             Console.ReadLine();  
  12.             Team newTeam = EncodeHelper.Deserialize(xml, typeof(Team)) as Team;//反序列化時需要顯式的進行類型轉換  
  13.             Console.WriteLine("Team Name:"+newTeam.Name);//顯示反序列化后的newTeam對象  
  14.             foreach (var member in newTeam.Members)  
  15.             {  
  16.                 Console.WriteLine("Member Num:" + member.Num);  
  17.                 Console.WriteLine("Member Name:" + member.Name);  
  18.             }  
  19.             Console.ReadLine();  
  20.         } 

  在執(zhí)行完Console.Write(xml)這行代碼后,就可以看到打印出來的XML文檔了。

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <Team xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
  3.   <Name>Development</Name> 
  4.   <Members> 
  5.     <Member> 
  6.       <Num>001</Num> 
  7.       <Name>Marry</Name> 
  8.     </Member> 
  9.     <Member> 
  10.       <Num>002</Num> 
  11.       <Name>John</Name> 
  12.     </Member> 
  13.   </Members> 
  14. </Team> 

  與我在文章開頭給出的例子是一模一樣的。

  最終反序列化出來的newTeam對象打印出來是這樣的結果。

  Team Name:Development

  Member Num:001

  Member Name:Marry

  Member Num:002

  Member Name:John

  回到我們開頭的Web通信的例子,

  利用XML序列化與反序列化來進行對象傳遞,我們只需要把需要傳遞的對象序列化為XML字符串,使用一個隱藏域進行form提交就可以搞定咯!

  接收方再將接收到的XML字符串反序列化成預設的對象即可。前提是雙方必須約定序列化與反序列化的過程一致,且對象相同。

  最后我們來看一下怎么利用一些特性來控制序列化與反序列化操作的過程。我們把開始的類改一下:

  1. public class Member  
  2.     {  
  3.         [XmlElement("Member_Num")]  
  4.         public string Num { get; set; }  
  5.         public string Name { get; set; }  
  6.     }  
  7.     [XmlRoot("Our_Team")]  
  8.     public class Team  
  9.     {  
  10.         [NonSerialized]public string Name;修正于2012-4-13        
  11. [XmlIgnore]public string Name;  
  12.         public List<Member> Members { get; set; }  
  13.     }  
  14.    
  15.  
  16. public class Member  
  17.     {  
  18.         [XmlElement("Member_Num")]  
  19.         public string Num { get; set; }  
  20.         public string Name { get; set; }  
  21.     }  
  22.     [XmlRoot("Our_Team")]  
  23.     public class Team  
  24.     {  
  25.         [NonSerialized]public string Name;修正于2012-4-13        
  26. [XmlIgnore]public string Name;  
  27.         public List<Member> Members { get; set; }  
  28.     } 

  然后我們再次執(zhí)行剛才的控制臺程序,序列化結果變成了這樣:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <Our_Team xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
  3.   <Name>Development</Name>修正于2012-4-13  
  4.   <Members> 
  5.     <Member> 
  6.       <Member_Num>001</Member_Num> 
  7.       <Name>Marry</Name> 
  8.     </Member> 
  9.     <Member> 
  10.       <Member_Num>002</Member_Num> 
  11.       <Name>John</Name> 
  12.     </Member> 
  13.   </Members> 
  14. </Our_Team> 

  本來的根節(jié)點Team變成了Our_Team,Member的子節(jié)點Num變成了Member_Num,并且Team的Name子節(jié)點被忽略了。

  可見特性XmlRoot可以控制根節(jié)點的顯示和操作過程,XmlElement則針對子節(jié)點。如果某些成員被標記XmlIgnore NonSerialized修正于2012-4-13特性,則在序列化與反序列化過程中會被忽略

原文鏈接:http://www.cnblogs.com/John-Connor/archive/2012/04/12/2440352.html

【編輯推薦】

  1. XML之父解讀未來互聯(lián)網(wǎng)"游戲化"的三個真諦
  2. Ajax和Web服務數(shù)據(jù)格式:XML SOAP HTML
  3. 超強解析XML——簡單直接的來
  4. 解析PHP中的XML數(shù)據(jù)
  5. 大話HTML DOM與XML DOM的區(qū)別與聯(lián)系 
責任編輯:彭凡 來源: 博客園
相關推薦

2018-03-19 10:20:23

Java序列化反序列化

2011-06-01 15:05:02

序列化反序列化

2023-12-13 13:49:52

Python序列化模塊

2009-09-09 15:47:27

XML序列化和反序列化

2009-09-09 14:45:41

XML序列化和反序列化

2011-05-18 15:20:13

XML

2022-08-06 08:41:18

序列化反序列化Hessian

2009-06-14 22:01:27

Java對象序列化反序列化

2009-08-24 17:14:08

C#序列化

2023-11-20 08:44:18

數(shù)據(jù)序列化反序列化

2009-08-06 11:16:25

C#序列化和反序列化

2024-09-10 08:28:22

2011-06-01 14:50:48

2019-11-20 10:07:23

web安全PHP序列化反序列化

2009-08-25 14:24:36

C#序列化和反序列化

2013-03-11 13:55:03

JavaJSON

2021-11-18 07:39:41

Json 序列化Vue

2009-09-09 16:10:11

.NET序列化和反序列

2009-08-25 14:43:26

C#序列化和反序列化

2009-07-29 13:39:02

JSON序列化和反序列ASP.NET AJA
點贊
收藏

51CTO技術棧公眾號

中文字幕av无码一区二区三区| 香蕉视频黄色在线观看| 伊人电影在线观看| 91蝌蚪porny| 国产精品丝袜久久久久久高清| 182在线观看视频| 美日韩黄色大片| 欧美日韩高清一区二区| 日本十八禁视频无遮挡| aaa日本高清在线播放免费观看| 国产成人免费在线| 国产福利精品av综合导导航| 99视频只有精品| 在线亚洲a色| 精品国产一区二区三区av性色 | 亚洲成人动漫在线播放| 一区二区三区国产免费| 美女91在线看| 亚洲一区在线视频| 中文字幕一区二区三区最新| 日韩在线观看视频网站| 国产伦精品一区二区三区免费| 日产日韩在线亚洲欧美| 久久久久免费看| 91亚洲国产高清| 亚洲男人天堂2024| 人妻激情偷乱频一区二区三区| 久久91视频| 日本道在线观看一区二区| 久操网在线观看| 呦呦在线视频| 亚洲欧美一区二区三区国产精品 | 99视频免费观看| 亚洲在线精品视频| 麻豆精品91| 91国内在线视频| 国产一级在线播放| 国产精品hd| 久久深夜福利免费观看| а天堂中文在线资源| 欧美伦理在线视频| 亚洲热线99精品视频| 偷偷色噜狠狠狠狠的777米奇| 51亚洲精品| 精品少妇一区二区三区视频免付费| 亚洲视频一二三四| 黄色成人在线观看网站| 精品久久久在线观看| www插插插无码视频网站| 波多一区二区| 午夜精品123| 免费看国产曰批40分钟| 九色porny自拍视频在线观看| 一区二区激情视频| 欧美午夜小视频| 欧美男男tv网站在线播放| 精品久久中文字幕| 日韩av黄色网址| 中文字幕在线视频网站| 日韩欧美在线字幕| 成人在线免费播放视频| 国产成人77亚洲精品www| 欧美日韩一区二区三区在线看 | 懂色av一区二区夜夜嗨| julia一区二区中文久久94| 国内精品偷拍视频| 成人免费观看视频| 免费成人深夜夜行视频| 男人的天堂在线免费视频| 久久久综合视频| 欧美午夜精品久久久久免费视| 黄色的视频在线免费观看| 国产拍揄自揄精品视频麻豆| 一区二区视频在线播放| 91高清在线观看视频| 亚洲午夜久久久| www.av中文字幕| 亚洲1234区| 欧美日韩成人综合| 久草免费资源站| 日韩精品丝袜美腿| 一二美女精品欧洲| 欧美黑人猛猛猛| 日韩午夜一区| 国产精品久久999| 国产普通话bbwbbwbbw| 成人性生交大片免费看中文网站| 蜜桃传媒视频麻豆一区| chinese偷拍一区二区三区| 中文字幕日本乱码精品影院| 大伊香蕉精品视频在线| 欧美三区四区| 精品国产乱码久久久久久牛牛| 精品少妇一区二区三区免费观| 色呦哟—国产精品| 97香蕉超级碰碰久久免费的优势| 亚洲精品国产欧美在线观看| 国产精品一区二区你懂的| 精品欧美一区二区三区久久久 | 日本三级久久| 久久久精品免费视频| 日韩欧美三级在线观看| 美女视频一区二区| 激情视频在线观看一区二区三区| av电影在线播放高清免费观看| 一区二区三区视频在线看| 久久久免费视频网站| 国产欧美日韩电影| 亚洲欧美中文在线视频| 日韩成人毛片视频| 老司机午夜精品视频| 1卡2卡3卡精品视频| 国产三级视频在线| 亚洲国产精品久久艾草纯爱 | 国产高清不卡一区| 日韩精品欧美一区二区三区| 成人影音在线| 7777精品伊人久久久大香线蕉完整版 | 日韩新的三级电影| 亚洲精品一区二区三区影院| 欧美自拍偷拍网| 久久精品一本| 激情视频在线观看一区二区三区| 国产视频一区二区| 欧美午夜理伦三级在线观看| 玖玖爱在线精品视频| 欧美 日韩 国产 一区| 国产精品久久77777| 日韩a级作爱片一二三区免费观看| 亚洲精品福利视频网站| 狠狠操狠狠干视频| 日本久久精品| 国产成人黄色av| 午夜视频www| 亚洲无人区一区| 人妻巨大乳一二三区| 久久免费精品视频在这里| 国产精品国产三级国产aⅴ9色| 日韩在线一区二区三区四区| 亚洲精品久久7777| 日本少妇xxx| 亚洲影视一区| 亚洲一区二区三区xxx视频| 日本视频在线观看| 3d成人动漫网站| 一级特黄曰皮片视频| 久久综合九色| 欧美在线3区| av激情成人网| 最好看的2019的中文字幕视频| 青青草视频在线观看免费| 久久综合久久久久88| 久久精品午夜福利| 欧美三级情趣内衣| 国产精品视频一区二区三区四| 成年人在线观看| 欧美伊人久久久久久久久影院 | 国产一区欧美二区三区| 香蕉视频在线看| 欧美丰满嫩嫩电影| 成熟的女同志hd| 国产超碰在线一区| 成人综合视频在线| 国产精品探花在线观看| 国产欧美在线观看| 日韩三级电影视频| 日韩成人xxxx| 五月婷婷激情五月| 国产精品女同一区二区三区| 手机av在线网| 好看不卡的中文字幕| 99国产在线视频| 女人让男人操自己视频在线观看 | 超碰在线97国产| 亚洲国产日韩欧美综合久久| 亚洲精品www久久久久久| 久久先锋影音av| 中文字幕成人在线视频| 欧美激情五月| 欧美久久综合性欧美| 国产精品成人国产| 欧美大片大片在线播放| 欧洲毛片在线| 欧美电影在线免费观看| 国产一卡二卡在线播放| 久久久精品综合| www.日本久久| 99热这里只有精品8| 日本一区二区三区四区在线观看| 成年永久一区二区三区免费视频| 欧美第一淫aaasss性| 精彩国产在线| 日韩精品一区二区三区四区视频| 欧美 日韩 精品| 亚洲视频免费在线观看| 懂色av粉嫩av蜜乳av| 精品一区二区在线免费观看| 黄色一级片在线看| 日本在线电影一区二区三区| 国产福利久久精品| av成人在线看| 97在线精品视频| 国产黄a三级三级三级av在线看| 亚洲激情视频网| 国产精品人人妻人人爽| 天天操天天干天天综合网| 最新一区二区三区| 久久九九久久九九| 少妇欧美激情一区二区三区| 日韩精品欧美精品| 国产一区二区视频播放| 91精品蜜臀一区二区三区在线| 久久伊人一区| eeuss鲁片一区二区三区| 国产精品久久一区| 美女一区网站| 97超级碰碰碰| 日韩特级毛片| 久久亚洲私人国产精品va| 国外av在线| 亚洲精品国产精品自产a区红杏吧| 国产毛片一区二区三区va在线| 一本到高清视频免费精品| 久久精品国产av一区二区三区| 日韩美女视频一区二区 | 少妇精品视频一区二区| 日韩免费福利电影在线观看| 在线视频播放大全| 在线观看日韩一区| 国产亚洲欧美在线精品| 亚洲成人tv网| 你懂的国产视频| 激情亚洲一区二区三区四区| 青青草手机在线视频| 中文字幕色av一区二区三区| 欧日韩不卡视频| 中文字幕欧美国产| 国产一级久久久久毛片精品| 久久丝袜美腿综合| 亚洲午夜福利在线观看| 久久综合国产精品| 亚洲av无码成人精品国产| av激情亚洲男人天堂| 国产原创剧情av| 不卡的av中国片| 色哟哟无码精品一区二区三区| 国产酒店精品激情| 欧美色图校园春色| 成人午夜看片网址| 最新版天堂资源在线| a亚洲天堂av| 大地资源二中文在线影视观看| 91色乱码一区二区三区| 97伦伦午夜电影理伦片| 国产亚洲一区二区三区四区 | 亚洲乱码中文字幕| 青青草在线观看视频| 亚洲二区视频在线| 国产欧美日韩另类| 91官网在线免费观看| 日韩国产成人在线| 在线观看欧美日本| 亚洲在线观看av| 日韩欧美成人激情| 天天综合网在线观看| 精品性高朝久久久久久久| 久草福利在线| 在线观看国产精品淫| 美女写真理伦片在线看| 欧美大胆在线视频| 欧美久久天堂| 国产精品亚洲片夜色在线| 欧美经典一区| 久久婷婷开心| 色琪琪久久se色| 国产成人亚洲综合无码| 一区二区三区福利| 国产小视频精品| 国产精品白丝jk黑袜喷水| 国产精品嫩草av| 亚洲国产成人在线| 国产在线拍揄自揄拍| 在线观看欧美黄色| 国产肥老妇视频| 亚洲性生活视频在线观看| 高清全集视频免费在线| 97视频com| 国产精品原创视频| 国产精品一区二区欧美黑人喷潮水 | 国产欧美一级| 日本不卡一区在线| av在线播放成人| 色www亚洲国产阿娇yao| 亚洲丶国产丶欧美一区二区三区| 69亚洲精品久久久蜜桃小说| 91精品在线观看入口| 亚洲日本中文字幕在线| 美日韩丰满少妇在线观看| 国产免费不卡| 99高清视频有精品视频| 日本久久一二三四| 欧美a在线视频| 国产精品羞羞答答xxdd| 一级在线观看视频| 欧美日韩精品在线观看| 国产婷婷一区二区三区久久| 亚洲欧美日韩视频一区| 欧美极品少妇videossex| 国产精品久久久久久超碰| 精品三级av| 国产精品av免费观看| 久久先锋影音| 国产真实乱人偷精品| 亚洲精品va在线观看| 91精品国产综合久| 亚洲欧美激情一区| 成人超碰在线| 91亚色免费| 色婷婷亚洲mv天堂mv在影片| 中国丰满人妻videoshd| 成人91在线观看| 婷婷在线精品视频| 在线成人免费观看| 成人免费一区二区三区视频网站| 91干在线观看| jizz18欧美18| 欧美精品在欧美一区二区| 捆绑变态av一区二区三区| 熟女高潮一区二区三区| 午夜国产精品一区| 好吊色在线观看| 欧美日产国产成人免费图片| 国产精久久久| 一区二区三区一级片| 另类综合日韩欧美亚洲| 国产一区二区三区四区五区六区| 激情懂色av一区av二区av| 国产综合无码一区二区色蜜蜜| 成人97在线观看视频| 先锋影音一区二区| 黄色免费高清视频| 国内精品自线一区二区三区视频| 永久免费未视频| 欧美高清hd18日本| 超碰免费公开在线| 亚洲一区二区免费| 欧美午夜不卡| 亚洲一级Av无码毛片久久精品| 亚洲激情图片一区| 亚洲黄色一级大片| 久久噜噜噜精品国产亚洲综合| 国产一区二区在线视频你懂的| 美女黄色免费看| 不卡的电视剧免费网站有什么| 久久夜色精品亚洲| 亚洲欧美自拍一区| 国内精品伊人| 国产精品啪啪啪视频| 国产成人综合网站| 日本少妇裸体做爰| 精品视频在线导航| 国产精品久久久久久妇女| 亚洲人成人77777线观看| 精品一区免费av| 免费一级片视频| 精品视频偷偷看在线观看| 国产日韩另类视频一区| 亚洲一区三区视频在线观看 | 2014国产精品| 日韩午夜一区| 国产精品av久久久久久无| 69堂亚洲精品首页| av免费不卡| 奇米影视首页 狠狠色丁香婷婷久久综合| 日韩精品亚洲一区二区三区免费| 日韩国产第一页| 亚洲第一精品自拍| 精品欧美一区二区三区在线观看| 亚洲一区高清| 不卡一区中文字幕| 中文字幕乱码人妻无码久久| 美女啪啪无遮挡免费久久网站| 久久影院资源站| 国产精品视频黄色| 亚洲线精品一区二区三区 | 爱爱精品视频| 三级a在线观看| 亚洲一级二级三级| 风间由美一区| 国产精品白丝jk白祙| 天堂成人国产精品一区| 亚洲一级二级片| 日韩精品久久久久久福利| 性欧美freehd18| 99久热在线精品视频| 国产色综合一区| 亚洲精品一区二区三区不卡| 国产欧美婷婷中文| 国产情侣一区| 日韩黄色免费观看|