成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解ASP.NET AJAX客戶端

開發 后端
本文介紹ASP.NET AJAX客戶端與服務器端均提供了序列化與反序列化的能力。了解這些內容的使用方法,可以說是使用與擴展ASP.NET AJAX所必須的能力。

在ASP.NET AJAX中使用了JSON作為客戶端與服務器端傳遞對象信息的方式。因此,在ASP.NET AJAX客戶端與服務器端均提供了序列化與反序列化的能力。了解這些內容的使用方法,可以說是使用與擴展ASP.NET AJAX所必須的能力。我們就來看一下ASP.NET AJAX中的序列化與反序列化的能力。

一、客戶端的序列化與反序列化能力:

在ASP.NET AJAX中,為客戶端提供序列化能力的是Sys.Serialization.JavaScriptSerializer類的serialize靜態方法。這個方法能夠將一個客戶端對象序列化成為一個JSON字符串,它的使用方法非常簡單。如下:

  1. var jsonStr = Sys.Serialization.JavaScriptSerializer.serialize(obj); 

沒有過多可說的內容,可能比較“有特點”的地方就是它對于客戶端Date對象的序列化操作。如果我們調用下面的代碼,會出現什么結果呢?

  1. var jsonStr = Sys.Serialization.JavaScriptSerializer.serialize(new Date());  


得到的結果類似于是“"@1162814090119@"”,請注意兩邊還有雙引號。這個是一個ASP.NET AJAX對于Date對象比較特殊的表示方法,如果在某些時候開發人員需要自己來“拼接”字符串時,就需要注意這一點。

給ASP.NET AJAX客戶端帶來反序列化能力的就是Sys.Serialization.JavaScriptSerializer類的deserialize靜態方法。如下:

  1. var obj = Sys.Serialization.JavaScriptSerializer.deserialize(jsonStr); 


它事實上只是簡單地調用了 JavaScript內置的eval方法。當然,既然序列化時對于Date對象有特殊的表示方法,在反序列化時,也會考慮到這一點: Sys.Serialization.JavaScriptSerializer類的deserialize靜態方法在調用Evail之前,會把 “"@...@"”變成“new Date(...)”的形式,這就是標準的JSON字符串了。


二、JavaScriptTypeResolver與JavaScriptConverter:

客戶端的序列化和反序列化非常簡單,我把它放在這里一并說明更像是為了讓內容更加完整。而服務器端的序列化與反序列化就不是那么輕易的了,它涉及到大量的字符串操作,也涉及到一定的自定義能力。這才是這片文章想要著重說明的。

ASP.NET AJAX提供的序列化和反序列化能力都是由Microsoft.Web.Script.Serialization這個命名空間下的類完成的。不過幸運的是,他們大都是內部類,真正能夠給開發人員使用的只有JavaScriptSerializer類的數個方法而已。ASP.NET AJAX已經帶給我們比較充足的序列化與反序列化的能力,我們只需要掌握它,知道它們是如何工作的,那一般也就足夠了。

不過要進入對于這些序列化與反序列化能力的了解,首先需要了解其它的兩個類:JavaScriptTypeResolver和JavaScriptConverter。

1、JavaScriptTypeResolver

JavaScriptTypeResolver是一個抽象類,雖然是***次在Atlas多個Release中出現,但是它并不是一個新鮮事物。它的作用就相當于Atlas CTP中的IJavaScriptSerializeContext接口,甚至可以說只是換了類名和方法名(事實上,從一個接口轉變為一個抽象類,這個做法讓人摸不著頭腦,因為現在的抽象類也不存在任何的實現)。這個類的作用是“將一個字符串,與一個特定的類進行關聯,使字符串成為那個特定類的一個標識 ”。這個抽象類存在著兩個方法:

1. String ResolveTypeId(Type):得到Type對象的標識字符串。
2. Type ResolveType(String):從字符串標識獲取一個Type對象。

可以看出,這兩個方法是一對相反的操作。他們會分別運用在序列化于反序列化操作之中。如果對于這個類的作用還不是非常了解的話,那么可以看一下 ASP.NET AJAX中這個抽象類的一個簡單實現。那就是 Microsoft.Web.Script.Serialization.SimpleTypeResolver類。它的代碼如下:

  1. public sealed class SimpleTypeResolver : JavaScriptTypeResolver  
  2. {  
  3. public override Type ResolveType(string id)  
  4. {  
  5. return Type.GetType(id);  
  6. }  
  7. public override string ResolveTypeId(Type type)  
  8. {  
  9. if (type == null)  
  10. {  
  11. throw new ArgumentNullException("type");  
  12. }  
  13. return type.AssemblyQualifiedName;  
  14. }  


以上介紹ASP.NET AJAX客戶端

【編輯推薦】

  1. ASP.NET MVC Web應用程序工程
  2. IIS6的ASP.NET ISAPI請求處理過程
  3. ASP.NET控件的七種用戶管理相關控件
  4. 對ASP.Net進行RSA加密
  5. ASP.NET得到數據庫字符串的方法
責任編輯:佚名 來源: 博客園
相關推薦

2009-08-18 15:43:56

ASP.NET生成客戶端腳本

2009-07-22 16:25:41

ASP.NET AJA

2009-07-22 16:05:34

ASP.NET AJA

2009-07-22 16:11:43

ASP.NET AJA

2009-07-22 16:17:39

ASP.NET AJA

2009-07-24 13:41:15

ASP.NET AJA

2009-07-29 13:50:26

UpdatePanelASP.NET

2009-07-20 10:16:13

配置ASP.NET A

2009-07-22 15:58:52

ASP.NET AJA

2009-07-31 13:24:43

ASP.NET AJA

2009-07-28 09:02:32

asp.net aja

2009-07-29 16:08:07

ASP和ASP.NET

2009-03-13 09:48:33

ASP.NETAjaxJQuery

2009-07-24 10:14:22

ASP.NET開發

2009-07-28 16:57:50

ASP.NET Ses

2009-08-05 11:14:33

ASP.NET ISA

2009-07-23 13:19:51

2021-08-28 05:02:22

Asp安全防護

2009-07-20 17:39:36

WCF服務ASP.NET AJA

2009-08-07 16:09:25

ASP.NET AJA
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕精品一区 | 久久久久久国产 | 丝袜 亚洲 另类 欧美 综合 | 国产中文视频 | 日韩综合 | 免费国产视频 | 亚洲小说图片 | 欧美成视频 | 久久这里只有精品首页 | 亚洲国产精品久久久久 | 亚洲 欧美 日韩在线 | 精品久久久久久久久久久院品网 | 日韩中文字幕 | 成人免费视频在线观看 | 日本成人一区二区 | www日韩| 国产精品久久久久久久久久免费看 | 麻豆久久久 | 国产在线高清 | 蜜桃视频在线观看免费视频网站www | 国产激情视频网站 | 黄色片大全在线观看 | 久久久久国产一区二区 | 国产欧美二区 | 国产成人精品一区二区三 | 久久久免费 | 三级免费av| 午夜影院免费体验区 | 国产激情综合五月久久 | www.天天操 | 国产激情综合五月久久 | 色影视| 香蕉大人久久国产成人av | 国产午夜精品理论片a大结局 | 久久久久国产一区二区三区四区 | 日韩欧美高清 | 国产精品18久久久久久久 | 亚洲精品一区二区冲田杏梨 | 日韩欧美在| 国产精品久久国产精品 | 久热精品在线 |