wcf示例,Silverlight 中使用WCF 示例

为WCF 服务类添加一个新方法,使用[OperationContract]特性来修饰。如下添加一个方法:
[OperationContract]
public string GetName(str ing name)
{
return name;
}
正如你看见的,这是一个简单的方法返回一个硬编码的名字。
一、右键解决方案资源管理器中的Web 项目并选择“添加新项”。从对话框左边面板选择“Silverlight”类别。从右边面板,选择“Silverlight-enabled WCF 服务”模板。选择默认名字“Service1.svc”并按“添加”按钮。
二、打开解决方案管理器。右键“Service1.svc”文件,并选择“设为起始页”。
按Ctrl + F5 运行应用程序(或使用菜单“调试”–>“开始执行不调试”)。
在浏览器打开Service1 元数据并显示。忽略页面内容,从浏览器复制URL。URL 类似于:
http://localhost:1873/Service1.svc
这个端口号可能会不同。
三、回到Visual Studio 的解决方案管理器。右键Silverlight 项目(不是Web 项目)并选择“添加Service 引用”。在地址域中,指定从浏览器中复制的URL,点击“前往”。在底部左边,修改命名空间为“MySampleService”。
将看见如下屏幕:



点击“确定”添加服务引用。
现在可以从Silverlight 客户端调用WCF 访问。
为了做测试,做下面几步:
1. 打开MainPage.xaml 文件并添加一个文本框用于显示从WCF 方法返回的字符串
2. 从UserControl 中添加“Loaded”事件。
MainPage.xaml 中的完整代码如下:
<UserControl x:Class="Silverlight_With_WCF.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300"
Loaded="UserControl_Loaded">
<Grid x:Name="LayoutRoot" Background="White">
<TextBlock x:Name="textblock1" Width="200" Height="30"></TextBlock>
</Grid>
</UserControl>
3.现在在后置代码中(MainPage.xaml.cs)中,按如下方式添加WCF 服务调用:
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
MySampleService.Service1Client client =new MySampleService.Service1Client();
client.GetNameCompleted +=new EventHandler<Silverlight_With_WCF.MySampleService.GetNameCompletedEventArgs>(client_GetNameCompleted);
client.GetNameAsync(“John”);
}
void client_GetNameCompleted(object sender,MySampleService.GetNameCompletedEventArgs e)
{
textblock1.Text = (string)e.Result;
}
4.在解决方案管理器中打开Web 项目并设置Silverlight 测试页为起始页。运行项目。可以看见从Silverlight 客户端调用WCF 服务,并将结果显示在浏览器。(在这个例子中,从调用WCF 服务返回的结果是“John”名字并将名字显示在屏幕上)。
Tags: 

延伸阅读

最新评论

发表评论