博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Silverlight中如何创建WCF Service
阅读量:7063 次
发布时间:2019-06-28

本文共 2364 字,大约阅读时间需要 7 分钟。

本篇以及下一篇文章我将向大家介绍下在Silverlight中如何创建WCF Service

以及如何调用WCF通信获得数据以及上传数据

并手把手教大家如何实现如下的上传文件程序(计划在下一篇讲述)

第一个范例:

先创建一个Silverlight应用程序

下面给Silverlight添加一个Silverlight-Enabled WCF Service如下图所示:

默认创建出来的.svc文件代码如下:

这个.svc文件中定义了一个操作契约public void DoWork()    (什么是操作契约请查看WCF相关材料)

没有任何输入也没有任何返回结果,明显是一个没有任何用处的操作契约

我将其修改如下:

1  [OperationContract] 
2  public   int  GetRandom( int  data) 
3  { 
4      Random rand  =   new  Random(data); 
5       //  Add your operation implementation here 
6       return  rand.Next(); 
7  }

通过传入一个int值来返回一个随机数

重新编译整个工程

接下来的问题就是如何在客户端调用这个WCF Service了

具体操作如下:

选择Silverlight工程的References并点击右键选择Add Service References…

点击Discovery按钮将自动帮你找到当前可得的服务

(顺便提一下Silverlight的WCF Binding只支持 binding="basicHttpBinding"

当然你如果知道当前的服务地址,你也可以在Address:中输入然后按Go来查找服务

我给服务在客户端的名字空间取名为DataServiceRef(当然你可以随便去你想要的名字)

按OK,svcUtil.exe将自动为你生成客户端代码

双击生成的Service References: DataServiceRef就能通过对象浏览器来查看生成的客户端对象了,如下图所示

接下来调用GetRandomAsync(int)来传送数据

并注册GetRandomCompleted事件来实现回调或者返回的数据

代码如下:

 1  private   void  Button_Click( object  sender, RoutedEventArgs e) 
 2  { 
 3      DataServiceRef.GetDataServiceClient client  =   new  WCFTest.DataServiceRef.GetDataServiceClient(); 
 4      client.GetRandomAsync( 100 ); 
 5      client.GetRandomCompleted  +=   new  EventHandler < WCFTest.DataServiceRef.GetRandomCompletedEventArgs > (client_GetRandomCompleted); 
 6  } 
 7 
 8  void  client_GetRandomCompleted( object  sender, WCFTest.DataServiceRef.GetRandomCompletedEventArgs e) 
 9  { 
10       this .txtData.Text  =   " The return data is  " + e.Result.ToString(); 
11  }

页面的界面代码如下:

1  < Grid x:Name = " LayoutRoot "  Background = " #3C3C3C " >  
2       < StackPanel HorizontalAlignment = " Center "  VerticalAlignment = " Center " >  
3           < TextBlock x:Name = " txtData "  FontSize = " 20 "  Foreground = " White " />  
4           < Button Content = " Get Data "  FontSize = " 20 "  Padding = " 8,5 "  Margin = " 0,5 "  Click = " Button_Click " />  
5       </ StackPanel >  
6  </ Grid >

运行效果图如下:

发布应用程序:

通过IIS发布本应用程序你必须注册WCF组件(不然无法识别.svc文件,你的WCF通信将瘫痪)

在Vista操作系统中你需要按照如下步骤进入

Control Panel->Programs->Programs and Features->Turn Windows Features on or off

勾选下图中框红的那个组件(默认不勾选)

如果是在XP或者Windows 2003上,请在命令行中运行如下代码注册WCF组件

cd %SYSTEMROOT%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\

ServiceModelReg.exe /i /x

这样你的Silverlight就可以在IIS上面正常运行了

(当然要让IIS识别.xap以及.xaml还需要添加两个MIME Types,具体请看

总结:

本篇文件大致演示了如何创建WCF Service,并在客户端调用生成的WCF Service来取得数据

转载于:https://www.cnblogs.com/ywsoftware/archive/2013/02/19/2916481.html

你可能感兴趣的文章
C#语言struct结构体适用场景和注意事项
查看>>
蓝桥杯 日期问题(枚举)
查看>>
如何为网站更新有价值的内容?
查看>>
XPsp3键盘设备链/栈信息_01_Code
查看>>
laravel报错1071 Specified key was too long; max key length is 1000 bytes
查看>>
12.scrapy框架之递归解析和post请求
查看>>
批量处理数据 SqlBulkCopy
查看>>
C#创建datatable
查看>>
赏心悦目的风景一
查看>>
iOS-学习路线图(推荐)
查看>>
mysql存储过程
查看>>
关于三角形的一个不等式
查看>>
对软件工程课程的期望
查看>>
01 面向对象之:初识
查看>>
如何实现伸缩(折叠)报表?
查看>>
浏览器定位是如何实现的?为什么会有浏览器定位失败的情况?
查看>>
安卓中自定义并使用Volley框架请求网络
查看>>
Linux运维笔记-后端运行脚本
查看>>
Java数据类型、变量、运算符、语句。
查看>>
格式化输出函数:printf 那些事 (C语言)
查看>>