Silverlight 独立存储(IsolatedStorageFile)

1.在Web中添加天气服务引用地址

http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

2.在Web中添加Wcf服务接口IWeatherService.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Runtime.Serialization;
 5 using System.ServiceModel;
 6 using System.Text;
 7 
 8 namespace EasySL.Web.WCF
 9 {
10     // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IWeatherService”。
11     [ServiceContract]
12     public interface IWeatherService
13     {
14         [OperationContract]
15         string[] GetCityWeather(string CityName);
16     }
17 }

3.在Web中实现服务接口

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Runtime.Serialization;
 5 using System.ServiceModel;
 6 using System.Text;
 7 
 8 namespace EasySL.Web.WCF
 9 {
10     // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“WeatherService”。
11     // 注意: 为了启动 WCF 测试客户端以测试此服务,请在解决方案资源管理器中选择 WeatherService.svc 或 WeatherService.svc.cs,然后开始调试。
12     public class WeatherService : IWeatherService
13     {
14         public string[] GetCityWeather(string CityName)
15         {
16             ServiceRefWeather.WeatherWebServiceSoapClient client = new ServiceRefWeather.WeatherWebServiceSoapClient("WeatherWebServiceSoap");
17             string[] cityNameWeather = client.getWeatherbyCityName(CityName);
18             return cityNameWeather;
19         }
20     }
21 }

4.在client添加自己创建的Wcf服务地址、调用服务接口

/// <summary>
        /// 通过wcf获取天气数据信息
        /// </summary>
        private void InitDataWeather()
        {
            try
            {
                ServiceReference1.WeatherServiceClient client = new ServiceReference1.WeatherServiceClient();
                client.GetCityWeatherCompleted += (s, e) =>
                {
                    try
                    {
                        if (e.Error == null)
                        {
                            string[] cityWeather = new string[e.Result.Count];
                           讲e.Result结果显示在页面中就ok了,然后我们将e.Result进行数据格式处理,运用独立存储讲结果保存起来                         }
                        else
                        {
                            lbltitle1.Content = e.Error.Message;
                        }
                    }
                    catch (Exception ex)
                    {
                        lbltitle1.Content = ex.Message;
                    }

                };
                client.GetCityWeatherAsync("北京");
            }
            catch (Exception ex)
            {
                //lbltitle1.Content = ex.Message;
            }

        }    

5.将数据结果存放到本地(运用独立存储技术)

 1  private void WeatherWriterIsolatedStorageFile(string str)
 2         {
 3             IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication();
 4             if (isf.FileExists("Weather.txt"))
 5             {
 6                 isf.DeleteFile("Weather.txt");
 7             }
 8             using (Stream stream = isf.CreateFile("Weather.txt"))
 9             {
10                 using (StreamWriter writer = new StreamWriter(stream))
11                 {
12                     writer.WriteLine(str);
13                 }
14             }
15         }

6.读取存放的数据结果(独立存储)

 private void ReaderWeatherIsolatedStorageFile()
        {
            IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication();
            if (isf.FileExists("AppConfig/Weather.txt"))
            {
                using (Stream stream = isf.OpenFile("Weather.txt", FileMode.Open))
                {
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        string[] line = reader.ReadToEnd().Split('|');
                     }
                }
                isf.DeleteFile("Weather.txt");
            }
            else
            {
                InitDataWeather();
            }
        }

 

posted @ 2014-08-08 16:51  银河系上的地球  阅读(457)  评论(0编辑  收藏  举报