Silverlight客户端调用WCF服务难题解疑

一:解决办法

Silverlight客户端调用WCF服务在实际使用中经常会出现的问题就是无法直接应用类文件和配置文件。微软针对这一情况已经给出了解决办法。
WCF开发框架可以帮助我们实现可靠性较高的跨平台解决方案。对于这样一款功能性较强的工具,我们在实际使用中通常也会遇到一些问题。在这里就来了解一下其中Silverlight客户端调用WCF服务的一些难题解疑。

WCF服务端做好后,可以通过SVCUTIL.exe工具生成客户端代码和配置文件,这些内容比较简单,在这里就不做详细介绍。

但是,如果使用Silverlight客户端调用WCF服务,则无法直接应用这些类文件和配置文件。

那么针对以上这些问题,我们应该如何正确解决呢?

1.silverlight默认不能引用其他.net类库项目,原因是MSCORLib的版本不同。这一点,主要是因为.NET和Siverlight属于不同的平台,虽然两者都可以使用C#或者VB.net来开发。

2.微软给出的Silverlight客户端调用WCF服务解决办法是,silverlight通过web service方式来应用WCF服务。具体步骤是:

  a. 先建立WCF服务ASP.net网站;

  

  b. 然后添加“启用了Silverlight的WCF服务”;

  

  

  

  c. 修改服务契约;

  d. 在Silverlight里边添加SVC的网络地址引用,这和添加其他WEB Service类似,给客户端的服务引用起名字,然后就可以在Silverlight里边使用了。

以上就是Silverlight客户端调用WCF服务出现问题后的解决方法。

二:代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace WCFSilverlightApplication
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
        }

        void sc_GetDataCompleted(object sender, ServiceReference1.GetDataCompletedEventArgs e)
        {
            MessageBox.Show(e.Result);
        }

        private void btnLogin_Click(object sender, RoutedEventArgs e)
        {
            ServiceReference1.Service1Client sc = new ServiceReference1.Service1Client();
            sc.GetDataCompleted += new EventHandler<ServiceReference1.GetDataCompletedEventArgs>(sc_GetDataCompleted);
            sc.GetDataAsync(Convert.ToInt32(txtName.Text.Trim()));  
        }
    }
}

 

转载于:https://www.cnblogs.com/hongmaju/p/4274046.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值