Silverlight调用WCF

时间:2011-01-04 06:52:23

标签: silverlight wcf silverlight-4.0

我是Silverlight的新手,只是想知道在Silverlight中调用WCF服务所涉及的步骤是否与在asp中相同或是否有任何区别。如果有任何差异,请求您帮助我。

提前致谢。

2 个答案:

答案 0 :(得分:1)

您需要注意的主要事项是

  1. silverlight支持仅​​basichttpbinding
  2. 您需要在wcf主机服务器的根文件夹中安装clientaccesspolicy.xml文件或crossdomain.xml,然后才能从silerlight成功调用web服务
  3. http://msdn.microsoft.com/en-us/library/cc197955%28v=vs.95%29.aspx

答案 1 :(得分:1)

我得到了答案,asp和silverlight之间略有不同。 在Silverlight中,所有服务调用都是异步的,因此您必须有一个事件处理程序,以便在完成异步调用时获取数据。

只是一个小例如

当您从asp调用WCF服务时,使用

proxy_http.FunctionClient fc = new proxy_http.FunctionClient();
        txtDisplay.Text = fc.Add(Convert.ToInt32(txtFirst.Text),Convert.ToInt32(txtSecond.Text)).ToString();

如果是Silverlight,您将使用

private void Add_Click(object sender, RoutedEventArgs e)
    {
        proxy_htt.FunctionClient fc = new proxy_htt.FunctionClient();
        fc.AddCompleted += new EventHandler<proxy_htt.AddCompletedEventArgs>(fc_AddCompleted); 
        fc.AddAsync(Convert.ToInt32(txtFirst.Text),Convert.ToInt32(txtSecond.Text));

    }

    void fc_AddCompleted(object sender, proxy_htt.AddCompletedEventArgs e)
    {
        txtResult.Text = e.Result.ToString();
    }