<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      一步一步學Silverlight 2系列(16):數據與通信之JSON

      概述

      Silverlight 2 Beta 1版本發布了,無論從Runtime還是Tools都給我們帶來了很多的驚喜,如支持框架語言Visual Basic, Visual C#, IronRuby, Ironpython,對JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步學Silverlight 2系列》文章帶您快速進入Silverlight 2開發。

      本文將簡單介紹在Silverlight 2中對于JSON的支持。

      簡單示例

      在本文中我們仍然采用前面兩篇文章中用過的顯示最新隨筆這樣一個示例(舉一反三嘛:)),最終完成的效果如下圖所示:

      TerryLee_Silverlight2_0065

      首先我們建立服務端,以便能夠提供JSON格式的數據。在這里為了產生JSON格式的數據,我們借助于一個開源項目Json.NET。建立兩個實體類型:

      public class Post
      {
          public int Id { get; set; }
      
          public string Title { get; set; }
      
          public string Author { get; set; }
      }
      public class Blog
      {
          public List<Post> Posts { get; set; }
      }

      在Silverlight項目中我們也會使用到這兩個實體類,新建一個HttpHandler,產生JSON格式數據,我們使用Json.NET中的JavaScriptConvert.SerializeObject方法即可序列化一個對象為JSON格式:

      public class BlogHandler : IHttpHandler
      {
      
          public void ProcessRequest(HttpContext context)
          {
              context.Response.ContentType = "text/plain";
      
              List<Post> posts = new List<Post>()
              {
                  new Post{ Id=1, Title="一步一步學Silverlight 2系列(13):數據與通信之WebRequest", Author="TerryLee" },
                  new Post{ Id=2, Title="一步一步學Silverlight 2系列(12):數據與通信之WebClient", Author="TerryLee" },
                  new Post{ Id=3, Title="一步一步學Silverlight 2系列(11):數據綁定", Author="TerryLee" },
                  new Post{ Id=4, Title="一步一步學Silverlight 2系列(10):使用用戶控件", Author="TerryLee" },
                  new Post{ Id=5, Title="一步一步學Silverlight 2系列(9):使用控件模板", Author="TerryLee" },
                  new Post{ Id=6, Title="一步一步學Silverlight 2系列(8):使用樣式封裝控件觀感", Author="TerryLee" }
              };
      
              Blog blog = new Blog();
              blog.Posts = posts;
      
              context.Response.Write(JavaScriptConvert.SerializeObject(blog));
          }
      
          public bool IsReusable
          {
              get
              {
                  return false;
              }
          }
      }

      現在測試一下HttpHandler,查看一下生成的數據格式:

      TerryLee_Silverlight2_0073

      對這些數據格式化一下,看起來更明顯,這里推薦一個在線JSON數據格式化工具http://www.curiousconcept.com/jsonformatter/

      TerryLee_Silverlight2_0075

      格式化后的數據如下:

      TerryLee_Silverlight2_0076

      現在實現在Silverlight中獲取JSON數據,并進行反序列化,界面布局XAML就不再貼出來了,跟前面兩篇的示例一樣。在Silverlight 2中,內置了對于JSON的支持,通過命名空間System.Runtime.Serialization.Json提供,位于System.ServiceModel.Web.dll中。

      我們使用WebRequest獲取數據:

      private void UserControl_Loaded(object sender, RoutedEventArgs e)
      {
          Uri endpoint = new Uri("http://localhost:8081/BlogHandler.ashx");
      
          WebRequest request = WebRequest.Create(endpoint);
          request.Method = "POST";
          request.ContentType = "application/x-www-form-urlencoded";
          request.BeginGetResponse(new AsyncCallback(ResponseReady), request);
      }
      
      void ResponseReady(IAsyncResult asyncResult)
      {
          WebRequest request = asyncResult.AsyncState as WebRequest;
          WebResponse response = request.EndGetResponse(asyncResult);
      
          using (Stream responseStream = response.GetResponseStream())
          {
              DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(Blog));
      
              Blog blog = jsonSerializer.ReadObject(responseStream) as Blog;
      
              Posts.ItemsSource = blog.Posts;
          }
      }

      DataContractJsonSerializer用于將對象序列化為JSON或者反序列化為對象實例,分別使用方法WriteObject和ReadObject。

      TerryLee_Silverlight2_0074

      至此一個完整的在Silverlight 2對于JSON的支持示例就完成了。運行后的效果與前面的示例一樣:

      TerryLee_Silverlight2_0065

      結束語

      本文簡單介紹了在Silverlight 2中對于JSON的支持,DataContractJsonSerializer用于將對象序列化為JSON或者反序列化為對象實例,你可以從這里下載本文示例代碼。

      下一篇:一步一步學Silverlight 2系列(17):數據與通信之ADO.NET Data Services

      posted @ 2008-03-10 18:28  TerryLee  閱讀(22126)  評論(48)    收藏  舉報
      主站蜘蛛池模板: 国产一区精品综亚洲av| 18国产午夜福利一二区| 亚洲AV成人片不卡无码| 久久久亚洲精品无码| 亚在线观看免费视频入口| 亚洲一区二区| 亚洲禁精品一区二区三区| 边坝县| 国精偷拍一区二区三区| 国产成人高清亚洲综合| 日本免费人成视频在线观看| 国产精品自拍一二三四区| 西西人体大胆444WWW| 麻豆亚洲自偷拍精品日韩另| 又大又紧又粉嫩18p少妇| 无码无需播放器av网站| 亚洲精品一区二区口爆| 亚洲免费观看在线视频| 国产喷水1区2区3区咪咪爱AV| 成午夜福利人试看120秒| 农安县| 日韩人妻少妇一区二区三区| 国产成人a∨激情视频厨房| 国产日女人视频在线观看| 日韩精品卡一卡二卡三卡四| 国产精品亚洲综合色区丝瓜| 免费人成视频网站在线观看18| 亚洲综合一区国产精品| 又大又粗欧美黑人aaaaa片| 国产精品国产三级国快看| 免费人成网站免费看视频| 欧美激情一区二区久久久| 久久久WWW成人免费精品| 布尔津县| 强奷白丝美女在线观看| 久久精品国产99久久丝袜| 亚洲色一色噜一噜噜噜| 九九热在线视频中文字幕| 久久国产成人av蜜臀| 宅男久久精品国产亚洲av麻豆| 国产成人剧情AV麻豆果冻|