silverlight 调用天气服务

来源:互联网 发布:windows7 apache 编辑:程序博客网 时间:2024/05/22 17:20

1.在Web服务端添加weatherService.svc 的WCF服务:

添加服务引用:

地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx

 

在服务中写上:

 public string[] GetCityName(string cityName)
    {
        //WeatherApp.Web.ServiceReference1.WeatherWebServiceSoapClient client = new WeatherWebServiceSoapClient("WeatherWebServiceSoap");
        weatherService.WeatherWebServiceSoapClient client = new weatherService.WeatherWebServiceSoapClient("WeatherWebServiceSoap");
        string[] cityNameArray = client.getSupportCity(cityName);
        return cityNameArray;
    }

    //获得城市的天气(官网调整暂时不能用)
    public string[] GetWeather(string cityName)
    {
        //.Web.ServiceReference1.WeatherWebServiceSoapClient client = new WeatherWebServiceSoapClient("WeatherWebServiceSoap1");
        weatherService.WeatherWebServiceSoapClient client = new weatherService.WeatherWebServiceSoapClient("WeatherWebServiceSoap1");
        string[] cityNameArray = client.getWeatherbyCityName(cityName);
        return cityNameArray;
    }

在对应接口中写上:

 [OperationContract]
    string[] GetCityName(string cityName);
    [OperationContract]
    string[] GetWeather(string cityName);

 

在silverlight客户端添加服务引用ServiceReference2:

在silverlight页面中就可以使用了:

    public partial class SilverlightControl3 : UserControl
    {

        Silverlightjizhang.ServiceReference2.WeatherServiceClient client = new ServiceReference2.WeatherServiceClient();

        public SilverlightControl3()
        {
            InitializeComponent();

            //获得城市名字
            client.GetCityNameCompleted += new EventHandler<ServiceReference2.GetCityNameCompletedEventArgs>(client_GetCityNameCompleted);
            client.GetCityNameAsync("ALL");

           //得到天气

 client.GetWeatherCompleted+= new EventHandler<ServiceReference2.GetCityNameCompletedEventArgs>(client_GetCityNameCompleted);
            client.GetWeatherAsync("北京");
        }

        void client_GetCityNameCompleted(object sender, ServiceReference2.GetCityNameCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                var query = e.Result;

                ObservableCollection<string> list = e.Result as ObservableCollection<string>;

                if (list.Count > 0)
                {
                    DropDownList1.ItemsSource = list;
                    //DropDownList1.DisplayMemberPath = "1";
                    DropDownList1.SelectedIndex = 0;
                }
                else
                {
                    DropDownList1.Items.Add("没有可选择的数据");
                }

            }
            else
            {
                MessageBox.Show(e.Error.Message);
            }
        }
    }

0 0
原创粉丝点击