欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

ASP.NET中怎么實現(xiàn)一個AJAX客戶端

ASP.NET 中怎么實現(xiàn)一個AJAX客戶端,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

10年積累的網(wǎng)站設(shè)計制作、網(wǎng)站建設(shè)經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有瓊海免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

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

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

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

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

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


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

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

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


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


二、JavaScriptTypeResolver與JavaScriptConverter:

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

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

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

1、JavaScriptTypeResolver

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

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

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

public sealed class SimpleTypeResolver : JavaScriptTypeResolver  {  public override Type ResolveType(string id)  {  return Type.GetType(id);  }  public override string ResolveTypeId(Type type)  {  if (type == null)  {  throw new ArgumentNullException("type");  }  return type.AssemblyQualifiedName;  }  }

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

名稱欄目:ASP.NET中怎么實現(xiàn)一個AJAX客戶端
本文路徑:http://www.chinadenli.net/article22/gidhcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化品牌網(wǎng)站制作標簽優(yōu)化商城網(wǎng)站外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化