在当今的软件开发中,Silverlight 和 WCF 是两种非常流行的技术。Silverlight 是一种富客户端技术,而 WCF(Windows Communication Foundation)是一种服务通信框架。通过结合这两种技术,我们可以创建出功能强大的应用程序。本文将带您轻松上手,教你如何用 Silverlight 调用 WCF 服务。
环境准备
在开始之前,请确保您已经安装了以下软件:
- Visual Studio 2010 或更高版本
- Silverlight 4 或更高版本
- .NET Framework 4 或更高版本
- Windows Communication Foundation SDK
创建 WCF 服务
- 打开 Visual Studio,创建一个新的 WCF 服务项目。
- 选择“WCF 服务应用”模板,点击“下一步”。
- 在“服务名称”和“服务基类名称”中输入名称,例如“MyService”和“MyServiceBase”。
- 选择“数据合同”和“服务实现”选项,点击“下一步”。
- 选择“添加服务引用”选项,点击“完成”。
现在,您已经创建了一个基础的 WCF 服务项目。
配置 WCF 服务
- 打开服务项目中的“Service.svc”文件,修改服务实现代码,例如:
[ServiceContract]
public interface IMyService
{
[OperationContract]
string GetMessage();
}
public class MyService : IMyService
{
public string GetMessage()
{
return "Hello, World!";
}
}
- 保存文件,并运行服务项目。此时,WCF 服务将自动发布到本地 IIS 服务器上。
创建 Silverlight 应用程序
- 在 Visual Studio 中,创建一个新的 Silverlight 应用程序项目。
- 选择“Silverlight 5 应用程序”模板,点击“下一步”。
- 在“服务宿主”选项中,选择“WCF 服务”,点击“下一步”。
- 在“服务宿主地址”中输入 WCF 服务的地址,例如“http://localhost:8000/Service.svc”。
- 点击“完成”,创建项目。
调用 WCF 服务
- 打开 Silverlight 应用程序项目,找到“ClientBin”文件夹,并将 WCF 服务的引用添加到项目中。
- 在 Silverlight 应用程序中,添加以下命名空间:
xmlns:svc="clr-namespace:MyService;assembly=MyService"
- 在代码中,添加以下代码:
using System.ServiceModel;
using svc;
public partial class MainPage : UserControl
{
private IMyService _myService;
public MainPage()
{
InitializeComponent();
_myService = new ChannelFactory<IMyService>("MyService").CreateChannel();
_myService.GetMessageCompleted += _myService_GetMessageCompleted;
_myService.GetMessageAsync();
}
private void _myService_GetMessageCompleted(object sender, GetMessageCompletedEventArgs e)
{
if (e.Error != null)
{
MessageBox.Show("An error occurred: " + e.Error.Message);
}
else
{
MessageBox.Show(e.Result);
}
}
}
- 运行 Silverlight 应用程序,您将看到一个消息框显示“Hello, World!”。
总结
通过本文,您已经学会了如何用 Silverlight 调用 WCF 服务。在实际项目中,您可以根据需要修改 WCF 服务和 Silverlight 应用程序,以实现更复杂的功能。希望这篇文章对您有所帮助!