轻松上手:教你如何用Silverlight轻松调用WCF服务

2026-10-18 0 阅读

在当今的软件开发中,Silverlight 和 WCF 是两种非常流行的技术。Silverlight 是一种富客户端技术,而 WCF(Windows Communication Foundation)是一种服务通信框架。通过结合这两种技术,我们可以创建出功能强大的应用程序。本文将带您轻松上手,教你如何用 Silverlight 调用 WCF 服务。

环境准备

在开始之前,请确保您已经安装了以下软件:

  1. Visual Studio 2010 或更高版本
  2. Silverlight 4 或更高版本
  3. .NET Framework 4 或更高版本
  4. Windows Communication Foundation SDK

创建 WCF 服务

  1. 打开 Visual Studio,创建一个新的 WCF 服务项目。
  2. 选择“WCF 服务应用”模板,点击“下一步”。
  3. 在“服务名称”和“服务基类名称”中输入名称,例如“MyService”和“MyServiceBase”。
  4. 选择“数据合同”和“服务实现”选项,点击“下一步”。
  5. 选择“添加服务引用”选项,点击“完成”。

现在,您已经创建了一个基础的 WCF 服务项目。

配置 WCF 服务

  1. 打开服务项目中的“Service.svc”文件,修改服务实现代码,例如:
[ServiceContract]
public interface IMyService
{
    [OperationContract]
    string GetMessage();
}

public class MyService : IMyService
{
    public string GetMessage()
    {
        return "Hello, World!";
    }
}
  1. 保存文件,并运行服务项目。此时,WCF 服务将自动发布到本地 IIS 服务器上。

创建 Silverlight 应用程序

  1. 在 Visual Studio 中,创建一个新的 Silverlight 应用程序项目。
  2. 选择“Silverlight 5 应用程序”模板,点击“下一步”。
  3. 在“服务宿主”选项中,选择“WCF 服务”,点击“下一步”。
  4. 在“服务宿主地址”中输入 WCF 服务的地址,例如“http://localhost:8000/Service.svc”。
  5. 点击“完成”,创建项目。

调用 WCF 服务

  1. 打开 Silverlight 应用程序项目,找到“ClientBin”文件夹,并将 WCF 服务的引用添加到项目中。
  2. 在 Silverlight 应用程序中,添加以下命名空间:
xmlns:svc="clr-namespace:MyService;assembly=MyService"
  1. 在代码中,添加以下代码:
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);
        }
    }
}
  1. 运行 Silverlight 应用程序,您将看到一个消息框显示“Hello, World!”。

总结

通过本文,您已经学会了如何用 Silverlight 调用 WCF 服务。在实际项目中,您可以根据需要修改 WCF 服务和 Silverlight 应用程序,以实现更复杂的功能。希望这篇文章对您有所帮助!

分享到: