Silverlight调用WCF服务引用示例

转载出处:http://www.cnblogs.com/subin1990/archive/2013/03/06/2946170.html


2013-03-06 15:22 by jinjinledao, 1353 阅读, 0 评论, 收藏编辑

这是我在项目中用到的一种Silverlight调用WCF服务的方法,现在记录下来,加深记忆。(以进行数的N次方计算为例)

  1. 添加项目“SimpleWCF.Contract”,这里写的是WCF服务的协定。

    在这个项目里添加一个接口,该接口含有一个进行N次方计算的方法。

    

复制代码
 1     [ServiceContract]
 2     public interface ISquareService
 3     {
 4         #region 获取某数的N次方值
 5         /// <summary>
 6         /// 说明:获取某数的N次方值
 7         /// </summary>
 8         /// <param name="dbValue">要进行求方计算的数</param>
 9         /// <param name="intNum">几次方</param>
10         /// <returns>String类型的计算结果</returns>
11         [OperationContract]
12         String GetSquareValue(double dbValue, int intNum);
13         #endregion
14     }
复制代码

  2. 添加项目“SimpleWCF.Implement”,这里是WCF服务的实现。

    在这个项目中添加一个类,继承"SimpleWCF.Contract"中的接口。

    

复制代码
 1     [ServiceBehavior]
 2     class SquareService:SimpleWCF.Contract.ISquareService
 3     {
 4         #region 获取某数的N次方值
 5         /// <summary>
 6         /// 说明:获取某数的N次方值
 7         /// </summary>
 8         /// <param name="dbValue">要进行求方计算的数</param>
 9         /// <param name="intNum">几次方</param>
10         /// <returns>String类型的计算结果</returns>
11         public String GetSquareValue(double dbValue, int intNum)
12         {
13             if (intNum < 0)
14             {
15                 return "求方计算的次方不能小于0!";
16             }
17             else if (intNum == 0)
18             {
19                 return "1";
20             }
21             else if (intNum == 1)
22             {
23                 return dbValue.ToString();
24             }
25             else
26             {
27                 double dbResultValue = 1;
28 
29                 for (int i = 0; i < intNum; i++)
30                 {
31                     dbResultValue *= dbValue;
32                 }
33 
34                 return dbResultValue.ToString();
35             }
36         }
37         #endregion
38     }
复制代码

  3. 添加项目“SimpleWCF.Service”,这个项目用来统一管理WCF服务。

    右键项目,添加名为“SquareService.svc”的WCF服务。删去自动生成的接口和代码实现类。

    右击该服务,选择“查看标记”,修改Service项的值为“SimpleWCF.Implement.SquareService ”。

    修改完成后,可右击该服务,选择“在浏览器中查看”,查看该服务。

  4. 添加Silverlight项目“SimpleWCF.Client”,自动生成一个承载该项目的Web项目“SimpleWCF.Client.Web”。

    在“SimpleWCF.Client”中,添加服务引用。

      

      点击“发现”按钮可找到系统中可用的WCF服务。修改命名空间为“SquareService”,这些就可以在Silverlight程序中调用该服务了。

     

复制代码
 1         /// <summary>
 2         /// 说明:单击“计算”按钮,得到计算结果
 3      /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void btnCalculate_Click(object sender, RoutedEventArgs e)
 7         {
 8             SquareService.SquareServiceClient clientSquare = new SquareService.SquareServiceClient();
 9             clientSquare.GetSquareValueCompleted += new EventHandler<SquareService.GetSquareValueCompletedEventArgs>(clientSquare_GetSquareValueCompleted);
10 
11             clientSquare.GetSquareValueAsync(double.Parse(this.txtNumber.Text), int.Parse(this.txtN.Text));
12         }
13 
14         /// <summary>
15         /// 说明:将计算结果显示在下方的文本框中
16       /// </summary>
17         /// <param name="sender"></param>
18         /// <param name="e"></param>
19         void clientSquare_GetSquareValueCompleted(object sender, SquareService.GetSquareValueCompletedEventArgs e)
20         {
21             this.txtResultValue.Text = "计算结果:" + e.Result;
22         }
复制代码

    结果如下图:

    

    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值