ASP.NET怎么定义JavaScript Converter
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇"ASP.NET怎么定义JavaScript Converter"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所
千家信息网最后更新 2025年02月04日ASP.NET怎么定义JavaScript Converter
这篇"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 IEnumerableSupportedTypes { 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
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"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
内容
循环
序列
方法
客户
客户端
对象
文章
知识
示例
篇文章
类型
良好
幸运
价值
功能
大部分
就是
情况
手动
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
陕煤集团网络安全
软件开发阶段的输出
软件开发做前端工资
以色列的网络安全如何
西安一码通软件开发成本
软件开发多线程
舆情分析技术图数据库
软件开发对人有用吗
学校网络安全自查情况
网络安全加强日常管理制度
交通安全食品安全网络安全
网络安全简笔画过程
护苗网络安全宣传片观后感
网络安全问题与策略
网络安全解决方案的质量
网络安全和信息化建设基本情况
软件开发语言是怎么产生的
南京自动软件开发价格实惠
分布式数据库的用法
服务器开远程桌面老中毒
王者显示服务器爆满怎么弄
mac 自带的服务器吗
电脑软件开发最低底薪
港服ps5原神无法连接服务器
软件开发项目风险测评
温州crm软件开发
广西港港互联网科技
苹果查找为什么连不上服务器
mysql数据库的创建
手机视频服务器教学