精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美激情777| 久久精品 人人爱| 91亚洲永久精品| 国产精品久久久av| 精品国产乱码久久久久久鸭王1 | 海角社区69精品视频| 亚洲精品国产suv| 思思久久精品视频| 久草在线中文最新视频| 中文字幕制服丝袜一区二区三区 | 欧美久久综合网| 精品国产欧美一区二区| 美女黄色片视频| av老司机在线观看| 国产精品久久久久久久蜜臀| 国产精品99久久久久久久| 国产99免费视频| 国内综合精品午夜久久资源| 中文字幕在线观看日韩| 性久久久久久久久久| 9999精品| 欧美日韩一二三| 大肉大捧一进一出好爽视频| 深夜国产在线播放| 国产精品久久网站| 清纯唯美一区二区三区| 欧美一级做性受免费大片免费| 韩国成人精品a∨在线观看| 日本亚洲欧洲色α| 久久夜靖品2区| 国产真实久久| 欧美超级免费视 在线| 第一次破处视频| 日本韩国欧美超级黄在线观看| 91精品国产色综合久久不卡蜜臀| 日本免费观看网站| 三上悠亚一区二区| 欧美性猛交xxxx富婆弯腰| 日韩在线观看a| 国产福利在线播放麻豆| 国产精品久久久久久亚洲伦| 日韩影视精品| 国产福利片在线| 国产午夜精品久久久久久免费视| 精品不卡在线| 日韩一级在线播放| 成人sese在线| 国产乱码精品一区二区三区日韩精品| 国产激情视频在线播放| 国产一区二区三区四| 91久久精品国产| 国产特级黄色片| 国产一区二三区| 亚洲一区免费网站| 99久久免费国产精精品| 国产精品一二三| 91精品国产99久久久久久红楼| 国产手机精品视频| 国产成人一区在线| 国产区一区二区三区| 香港一级纯黄大片| 91在线国内视频| 欧美日韩国产精品一区二区| 国产高清免费在线播放| 中文字幕+乱码+中文字幕一区| 日本不卡二区高清三区| av在线资源站| 日韩一区欧美一区| 日本人妻伦在线中文字幕| 电影k8一区二区三区久久| 亚洲成精国产精品女| 国产成人精品视频免费看| 性高爱久久久久久久久| 欧美男同性恋视频网站| 亚洲热在线视频| 美腿丝袜亚洲图片| 亚洲人午夜色婷婷| 乱h高h女3p含苞待放| 欧美三区美女| 日本久久91av| 国产色在线视频| 99re视频这里只有精品| 图片区小说区区亚洲五月| 好操啊在线观看免费视频| 亚洲一区在线电影| 凹凸日日摸日日碰夜夜爽1| 久久久加勒比| 亚洲国产精品高清久久久| 一区二区三区四区免费| 久久久久国产精品| 51视频国产精品一区二区| 国产成人精品亚洲| 成人精品视频网站| 日韩欧美亚洲在线| 狂野欧美激情性xxxx欧美| 色综合一个色综合| 色婷婷狠狠18禁久久| 久久99国产精一区二区三区| 久久五月天色综合| 中文字幕第四页| 久久99精品久久久久久久久久久久| 成人免费91在线看| 91网页在线观看| 亚洲成av人综合在线观看| 亚洲 激情 在线| 啪啪国产精品| 欧美黑人xxxx| 91精品国产综合久| 91小视频在线| 日本人妻伦在线中文字幕| 四虎影视4hu4虎成人| 欧美成人精品高清在线播放| 手机av在线不卡| 国产欧美日韩综合一区在线播放 | 国产精品二区一区二区aⅴ污介绍| 日韩av高清在线看片| 亚洲伦理网站| 中文欧美在线视频| 国产精品国产三级国产专区52| 精品一区二区三区不卡| 蜜桃999成人看片在线观看| 日本大片在线播放| 91精品欧美一区二区三区综合在 | 欧美激情无毛| 成人黄色中文字幕| www 日韩| 91黄色免费观看| 亚洲制服丝袜在线播放| 午夜精品亚洲| 亚洲一区二区三区四区在线播放| www.国产精品.com| 欧美写真视频网站| 久久久精品人妻无码专区| 99在线观看免费视频精品观看| 亚洲综合社区网| 国内精品久久久久久野外| 欧美日韩精品系列| 懂色av蜜桃av| 蜜臀a∨国产成人精品| 色乱码一区二区三在线看| 黑人巨大精品欧美一区二区桃花岛| 亚洲精品国偷自产在线99热| 国产精品1000| www.日韩精品| 六月丁香婷婷激情| 久久av综合| 国产成人亚洲综合青青| 国产在线电影| 在线观看一区日韩| 中文字幕精品亚洲| 激情图区综合网| 看一级黄色录像| 日本超碰一区二区| 久久人91精品久久久久久不卡 | 成人免费视频一区| 97超碰在线人人| 日韩精品导航| 国产成人亚洲综合91| 无遮挡动作视频在线观看免费入口| 欧美视频第二页| 国产免费一区二区三区四区| 国产综合色视频| 麻豆视频传媒入口| 丁香综合av| 日韩av不卡电影| 成年人视频在线看| 91精品国产美女浴室洗澡无遮挡| 久草视频免费在线播放| 白白色亚洲国产精品| 久久精品99国产| 色综合狠狠操| 国产高清一区二区三区| 日韩理论视频| 日韩视频在线免费观看| 国产黄色一级大片| 欧美性xxxx在线播放| 99久久99久久精品免费看小说.| 国产一区欧美一区| a在线视频观看| 日韩精品二区| 国产精品一区二区av| 天天综合网站| 欧美成人一二三| 四虎在线视频| 欧美日韩二区三区| 国产无套在线观看| 国产精品久久一级| 性色av蜜臀av浪潮av老女人| 日韩vs国产vs欧美| 无码人妻精品一区二区蜜桃百度| 香蕉久久精品| 91成人理论电影| 日日夜夜天天综合| 欧美美女操人视频| 草碰在线视频| 精品国产伦理网| 中文字幕永久在线视频| 亚洲国产精品久久艾草纯爱| 天天干天天舔天天操| 成人精品小蝌蚪| 三级一区二区三区| 日韩综合一区二区| 黄页网站大全在线观看| 婷婷综合伊人| 日韩国产精品一区二区| 成人av激情人伦小说| 国产一区玩具在线观看| 亚洲黄色中文字幕| 久久久久久国产精品三级玉女聊斋| 国内av一区二区三区| 精品久久久久久久久久久久久久久久久| 国产天堂第一区| 午夜精品久久久久久久99水蜜桃| 亚洲人做受高潮| 91免费看片在线观看| 年下总裁被打光屁股sp| 国产在线精品免费av| 国产精品wwwww| 日韩亚洲国产欧美| 日韩极品视频在线观看| 欧美色一级片| 麻豆一区二区三区在线观看| 日韩精品免费| 日本精品一区| 国产精品欧美三级在线观看| 国产在线精品二区| 第四色中文综合网| 国产超碰91| 午夜日韩影院| 亚洲精品免费在线视频| 成人精品在线| 成人免费福利视频| 99久久这里有精品| 成人午夜在线影院| 四虎在线精品| 91免费看片网站| 国产免费区一区二区三视频免费 | 国产精品久久久久福利| 日韩激情电影| 奇米4444一区二区三区| 小h片在线观看| 日产精品久久久一区二区福利| 三级成人黄色影院| 国产精品久久精品| 欧美电影在线观看网站| 国产欧美日韩高清| 国产一区二区三区| 亚洲在线一区二区| 亚洲一区二区三区四区电影| 成人动漫在线观看视频| 精品三级国产| 国产精品美女黄网| 免费成人三级| 欧美午夜精品久久久久久蜜| 国产探花一区在线观看| 翔田千里亚洲一二三区| 国产精品久久久久久| a级黄色片网站| 午夜激情一区| 免费观看国产精品视频| 羞羞视频在线观看欧美| 中文字幕视频在线免费观看| 久久99国产精品久久99| 亚洲欧洲日韩综合| 91蜜桃在线免费视频| 成人激情五月天| 亚洲欧洲国产日本综合| 久久久夜色精品| 欧美日韩国产综合新一区 | 老司机精品视频导航| 亚洲精品在线视频播放| 粉嫩aⅴ一区二区三区四区五区| 亚洲av成人片色在线观看高潮 | 日韩一区二区三区四区视频| 亚洲免费伊人电影| 黄色片网站在线免费观看| 欧美日韩午夜影院| 亚洲国产精品suv| 亚洲欧美日韩在线高清直播| 在线观看二区| 久久久久久久爱| 素人啪啪色综合| 99国产高清| 欧美日韩中文一区二区| 成人短视频在线观看免费| 亚洲一区二区三区免费在线观看| wwwwxxxx日韩| 成人av在线网站| 男女男精品视频网站| 亚洲成精国产精品女| 一区两区小视频| 亚洲激情 国产| 精品国产白色丝袜高跟鞋| 欧美性一区二区三区| 欧美电影在线观看一区| 日本一区二区三区免费观看| 欧美久久99| 国产免费又粗又猛又爽| www.欧美亚洲| 妺妺窝人体色www婷婷| 欧美色综合天天久久综合精品| 欧美一级一区二区三区| 久久影视电视剧免费网站| 韩漫成人漫画| 国产亚洲福利社区| 欧美一区视频| 亚洲福利精品视频| 久久综合999| 日本天堂网在线观看| 91精品国产综合久久久久| 国产高清一区在线观看| 国产69精品久久久久久| 91精品尤物| 在线视频一二三区| 老司机免费视频一区二区| 久久国产柳州莫菁门| 精品免费在线观看| 亚洲欧美另类日韩| 欧美成人精品激情在线观看| 91av一区| 日本一区二区在线视频| 亚洲欧美日本日韩| 日本69式三人交| 亚洲一区二区偷拍精品| 国产av无码专区亚洲av麻豆| 中文字幕日韩高清| 精品欧美一区二区三区在线观看| 精品国产一区二区三区四区精华| 欧美区国产区| 少妇极品熟妇人妻无码| 亚洲免费在线电影| jizz中国女人| 欧美成人免费在线观看| 国产一区二区三区视频在线| 杨幂一区欧美专区| 久久av中文字幕片| 人人妻人人澡人人爽| 欧美主播一区二区三区| 黄色毛片在线观看| 国产精品69av| 久久精品国产大片免费观看| 亚洲精品自拍网| 亚洲日本电影在线| 国产高清视频免费观看| 欧美尺度大的性做爰视频| 欧美三级一区| 免费高清一区二区三区| 成人性生交大片免费看中文| 国产精品1234区| 亚洲欧美国产精品久久久久久久| 免费观看亚洲| 日韩高清av电影| 狠狠色狠狠色综合| 五月天丁香激情| 亚洲的天堂在线中文字幕| a欧美人片人妖| 日韩在线三级| 国内一区二区视频| 免费人成视频在线| 亚洲成人中文字幕| 二区三区不卡| 日本欧美精品久久久| 精品综合久久久久久8888| 欧美交换国产一区内射| 亚洲精品aⅴ中文字幕乱码 | 伊人激情综合| 亚洲最大成人网站| 欧美日韩精品三区| 成人在线高清免费| 日本一区视频在线观看| 国产在线看一区| 日韩欧美中文字幕一区二区| 亚洲欧美制服第一页| 亚洲国产天堂| 狠狠干 狠狠操| 亚洲国产电影在线观看| 国产成人精品免费看视频| 国产91精品青草社区| 99久久夜色精品国产亚洲狼| 久久久久亚洲AV成人网人人小说| 欧美丝袜美女中出在线| 天堂аⅴ在线地址8| 国产伦精品一区二区三毛| 日韩成人精品视频| 精品无码黑人又粗又大又长| 亚洲网站在线播放| 亚洲一区网址| 无限资源日本好片| 亚洲不卡在线观看| 91官网在线| 精品无人区一区二区三区竹菊| 美腿丝袜亚洲色图| 久久狠狠高潮亚洲精品| 日韩在线视频中文字幕| 久久porn| 波多野结衣免费观看| 日韩欧美中文在线| 日日夜夜天天综合入口| 亚洲乱码一区二区三区| 91麻豆免费在线观看|