65.9K
CodeProject 正在变化。 阅读更多。
Home

WCF 服务( 无需配置) 用于 Silverlight

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.33/5 (5投票s)

2010年9月13日

CPOL

1分钟阅读

viewsIcon

25465

downloadIcon

286

WCF 服务用于 Silverlight, 无需在配置文件中进行配置

引言

本文展示了如何为 Silverlight 客户端开发无需配置的 WCF 服务。

背景

如果频繁地添加/修改 WCF 服务,维护其配置部分会变得相当复杂。

为我们的 Silverlight 客户端开发一个服务库,而无需在config文件中进行任何配置,会是一个更好的主意。 以下类图描述了这样一个库,也是本文的范围。

Fig-1.jpg

Using the Code

上述类图中关键的类是 SLServiceHost,它继承自 ServiceHost 并重写了 ApplyConfiguration 方法。 在那里,您可以实现自定义绑定和元数据行为、MEX 等。

以下是代码片段

protected override void ApplyConfiguration()
{            
    base.ApplyConfiguration();
    CustomBindings();
    EnableMetaDataBehaviorAndAddMexEndPoint();
}

有一个自定义服务主机工厂,SLServiceHostFactory,它继承自 ServiceHostFactoryBase 并创建我们的 SLServiceHost 的实例。

在我们的自定义服务(MyService.svc)中,在 XAML 中,我们将工厂和服务代码隐藏属性设置为如下所示

 <%@ ServiceHost Language="C#"
 Factory="Silverlight.Services.SLServiceHostFactory,Silverlight.Services"
 Service="Silverlight.Services.MyService" %>

从 VS2010 运行 Silverlight.Services.Web 应用程序。 端口设置为 33333

现在从 VS 命令提示符运行您的 wcftestclient 实用程序并添加服务并进行测试。

Click to enlarge image

关注点

  1. 无需在Web.Config中配置的服务库
  2. 单个契约接口,ISLService

历史

  • 2010年9月13日:初始发布
© . All rights reserved.