天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

打通.NET 3.5與ExtJS數(shù)據(jù)交互的任督二脈

  ExtJS是一套非常好的UI框架,已經(jīng)有越來(lái)越多的企業(yè)級(jí)應(yīng)用程序使用上了這個(gè)框架而從中受益。然后,在眾多的項(xiàng)目當(dāng)中,以J2EE項(xiàng)目居多,原因是ExtJS與Java的集成化越來(lái)越強(qiáng)。而對(duì)于使用.NET平臺(tái)的開(kāi)發(fā)者來(lái)說(shuō),想要在自己的項(xiàng)目當(dāng)中使用ExtJS卻困難重重,原因在于數(shù)據(jù)通信很難達(dá)到統(tǒng)一。在.NET 3.5以前,.NET平臺(tái)提供有限的JSON原生支持。因而很多程序員都是使用第三方的組件。例如LitJson.NET組件。

  在.NET 3.5中,框架提供了DataContractJsonSerializer類(lèi),可以方便地對(duì)對(duì)象進(jìn)行JSON序列化跟反序列化。另外,.NET3.5提供了擴(kuò)展方法跟LINQ,更是對(duì)我們的開(kāi)發(fā)如虎添翼。在這篇BLOG中,我將使用這些新特性,對(duì)如何把ExtJS與.NET通信進(jìn)行集成進(jìn)行了分析。有什么錯(cuò)誤,請(qǐng)大家指正,歡迎交流。

  一、使用DataContractJsonSerializer類(lèi)

  該類(lèi)用于對(duì)對(duì)象進(jìn)行JSON序列化跟反序列化。該類(lèi)位于System.Runtime.Serialization.Json命名空間中。是.NET3.5平臺(tái)新增的類(lèi)。主要使用WriteObject()跟ReadObject()方法對(duì)對(duì)象進(jìn)行相應(yīng)的操作。相關(guān)的API,可參考MSDN。

  二、擴(kuò)展方法

  擴(kuò)展方法,是.NET 3.5提供的新特性,用于增強(qiáng)原生對(duì)象的功能支持,擴(kuò)展對(duì)象的功能。相關(guān)的介紹,請(qǐng)參照MSDN或相關(guān)書(shū)籍。

  三、泛型

  泛型對(duì)于許多.NET的程序員并不陌生。在.NET 2.0之后,已經(jīng)在框架中添加了對(duì)泛型的支持。泛型使到我們減少了對(duì)象在裝箱跟拆箱的過(guò)程中資源的損耗。

  接下來(lái),我們可以編寫(xiě)如下的代碼,用以擴(kuò)展類(lèi)的JSON序列化功能。我使用了擴(kuò)展方法,并且使用泛型約束,約束了類(lèi)型必須為類(lèi)。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Text;
using System.Runtime.Serialization.Json;

/// 
/// Summary description for JsonExtends
/// 
public static class JsonExtends
{
    
public static string ToJson<T>(this T obj) where T: class
    {
        DataContractJsonSerializer ser 
= new DataContractJsonSerializer(obj.GetType
());
        
string output = string.Empty;
        
using (MemoryStream ms = new MemoryStream())
        {
            ser.WriteObject(ms, obj);
            StringBuilder sb 
= new StringBuilder();
            sb.Append(Encoding.UTF8.GetString(ms.ToArray()));
            output 
= sb.ToString();
        }
        
return output;
    }

    
public static T FromJson<T>(this string jsonString) where T : class
    {
        T ouput 
= null;
        
try
        {
            DataContractJsonSerializer ser 
= new DataContractJsonSerializer(typeof(T
));
            
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes
(jsonString)))
            {
                ouput 
= (T)ser.ReadObject(ms);
            }
        }
        
catch (Exception) { }
        
return ouput;
    }
}

NET技術(shù)打通.NET 3.5與ExtJS數(shù)據(jù)交互的任督二脈,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 國產麻豆AVMDXMDX | 午夜福利视频极品国产83 | 亚洲中文字幕无码爆乳APP | 伦理片97影视网 | 国产亚洲美女在线视频视频 | 亚洲精品久久国产高清 | 亚洲乱码AV久久久久久久 | 嗯啊快停下我是你老师啊H 嗯啊快拔出来我是你老师视频 | 色偷偷91综合久久噜噜 | 亚洲免费在线视频 | xxxx美国老师1819| 国产真实强被迫伦姧女在线观看 | 爱豆剧果冻传媒在线播放 | 综合久久久久久久综合网 | 武侠艳妇屈辱的张开双腿 | 欧美激情一区二区三区四区 | 帅小伙和警官同性3p | 亚洲国产系列一区二区三区 | 羞羞答答的免费视频在线观看 | 日韩经典欧美一区二区三区 | 久久香蕉国产线看观看 | 单亲妈妈3韩国电影免费观看 | 91系列在线观看免费 | chinese学生gv video | 狠狠色色综合网站 | 精品 在线 视频 亚洲 | 日本熟妇乱妇熟色A片蜜桃亚洲 | 久久re热在线视频精99 | h片下载地址| 黑丝袜论坛 | 国内卡一卡二卡三免费网站 | 老阿姨才是最有味的一区二区 | 久久香蕉国产线看观看首页 | 欧美视频毛片在线播放 | 第一会所欧美无码原创 | 日本A级作爱片金瓶双艳 | 国精产品一区一区三区有限公司 | 翁公吮她的花蒂和奶水 | 国产成人无码免费精品果冻传媒 | 草莓视频在线看免费高清观看 | 三级黄色一级视频 |