silverlight 调用天气服务

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);
            }
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值