龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

Silverlight获取数据交互功能源码下载(2)

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
下面是具体的请求和接受数据的代码。 Code [http://www.xueit.com] public MainPage() { InitializeComponent(); string url = ((App)Application.Current).DataUrl; HttpWebRequest request = (Ht

下面是具体的请求和接受数据的代码。

Code [http://www.xueit.com]
public MainPage()
        {
            InitializeComponent();

            string url = ((App)Application.Current).DataUrl;
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

            request.BeginGetResponse(new AsyncCallback(RequestReady), request);
        }

        public void RequestReady(IAsyncResult result)
        {
            HttpWebRequest request = (HttpWebRequest)result.AsyncState;
            HttpWebResponse response =(HttpWebResponse)request.EndGetResponse(result);
            Stream stream = response.GetResponseStream();
            using (StreamReader sr = new StreamReader(stream))
            {
                string str = sr.ReadToEnd();
                txt.Dispatcher.BeginInvoke(() => { txt.Text = str; });
            }
        }

我们用到HttpWebRequest和HttpWebResponse异步的请求和接受数据。并把收到的xml字符串装进TextBox里。Demo就这么简单。

但如果我们往深了想一想,这种取数据的方式避免了WCF中的很多麻烦,可以称得上干净利索。同时这种方法要想发挥最大作用就要配合SilverlightDataSet使用了(关于SilverlightDataSet请见我前面的那片Silverlight传递DataTable终极解决方案的Blog)。要说缺点嘛估计也有,就是如果传递实体类你得自己处理序列化和反序列化得问题,还有就是传递的xml很大时要进行压缩或分段。

这种方式作为aspx中嵌入的数据量较小的SL控件的取数方法还是很不错的。不是吗?

 源代码下载


精彩图集

赞助商链接