亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET中怎么定義JavaScript Converter

發布時間:2022-05-23 16:05:29 來源:億速云 閱讀:153 作者:iii 欄目:大數據

這篇文章主要講解了“ASP.NET中怎么定義JavaScript Converter”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ASP.NET中怎么定義JavaScript Converter”吧!

1、定義存在循環引用的類型

首先我們定義一個Boy類和Girl類以供使用:

public class Boy  {  public string Name;  public Girl GirlFriend;  }  public class Girl  {  public string Name;  public Boy BoyFriend;  }

很顯然,如果我將它們“配成一對”,在序列化輸出時就會拋出異常了。就沖著這點,我們就必須定義一個JavaScriptConverter啊,總不能拆散他倆。


2、定義JavaScriptConverter以及序列化能力

我們下面就該開始定義JavaScriptConverter了,我們姑且將其稱之為BoyConverter。首先需要告訴ASP.NET,我們這個Converter可以支持哪些類型:

public class BoyConverter : JavaScriptConverter  {  public override IEnumerable<Type> SupportedTypes  {  get  {  yield return typeof(Boy);  }  }  ……  }

如果要實現一個比較良好的Serialize方法,就需要處理“有循環引用”和“沒有循環引用”兩種情況。幸運的是,對于Serialize方法來說,這點比較容易:

public override IDictionary, object, object =  Dictionary, object = (Boy)obj;  result["Name"] = boy.Name;  // 如果有GirlFriend引用      if (boy.GirlFriend != null)  {  // 摘除循環引用           = ;  result["GirlFriend"] = boy.GirlFriend;  // 在客戶端再建立關聯          result["__getRealObject"] =  "function(o) {  = o; return o; }";  }  return result;  }

在這里,我們“手動”地將Boy對象轉換為了一個IDictionary<string, objct>,這樣就避免出現了循環引用。另外,為了在客戶端直接得到一個互相引用的“Boy”和“Girl”對象。


3、自定義序列化功能使用示例

那么我們來看一下使用示例吧,首先我們需要定義一個Web Service方法:

[WebService(Namespace = "http://tempuri.org/")]  [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  [Microsoft.Web.Script.Services.ScriptService]  public class BoyGirlService  : System.Web.Services.WebService {  [WebMethod]  public Boy GetBoy(string boyName, string girlName)  {  Boy boy = new Boy();  boy.Name = boyName;  if (!String.IsNullOrEmpty(girlName))  {  Girl girl = new Girl();  girl.Name = girlName;  girl.BoyFriend = boy;  boy.GirlFriend = girl;  }  return boy;  }  }

感謝各位的閱讀,以上就是“ASP.NET中怎么定義JavaScript Converter”的內容了,經過本文的學習后,相信大家對ASP.NET中怎么定義JavaScript Converter這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

来宾市| 温州市| 新营市| 淮安市| 玛曲县| 舞钢市| 黑水县| 五河县| 溧阳市| 志丹县| 门源| 琼中| 页游| 富宁县| 鸡东县| 裕民县| 江津市| 平湖市| 民勤县| 浦东新区| 南郑县| 栾城县| 淮阳县| 嘉黎县| 静海县| 长治市| 湖南省| 墨脱县| 大安市| 苍山县| 天门市| 铜陵市| 当涂县| 镇宁| 梨树县| 黄石市| 宜黄县| 济源市| 南皮县| 灵川县| 正蓝旗|