SvsUtil.exe生成服务文件

在程序中调用某个 WCF Services 一般按照如下步骤进行:

生成对应 Service 的代理类。
程序创建该代理类实例,访问指定方法。

生成代理类

可通过在 Visual Studio 中针对某个项目右键菜单中选择添加服务引用的方式来生成代理类。但是这种方式不便设定参数以及删除额外生成的 ServiceReferences.ClientConfig 文件,所以我们一般采用命令行方式。

生成

针对 Silverlight 应用程序,一般采用如下命令行

@ECHO OFF
@ECHO 生成代理类...
"C:\Program Files (x86)\Microsoft SDKs\Silverlight\v5.0\Tools\SlSvcUtil.exe" http://servername/ServiceUrl /edb /n:"*,Sunlight.Silverlight.Dms" /r:"C:\Program Files (x86)\Microsoft Silverlight\5.1.20125.0\System.Windows.dll" /o:ServiceClient.cs
DEL ServiceReferences.ClientConfig

应根据实际情况调整所访问的 WCF Service 地址(http://servername/ServiceUrl)、默认命名空间(Sunlight.Silverlight.Dms)以及生成的 Client文件地址(ServiceClient.cs)。关于 SlSvcUtil.exe 的详细解释请参见 Using SLsvcUtil.exe to Access a Service 。 

调整

代理类需要将当前网站指定为默认的 WCF Service 访问地址并采用网站目前所使用的协议,这里需要人工调整。(ServiceClient 应调整为代理类的类名)

删除 ServiceClient 类的非空参数的构造函数。

调整 ServiceClient 类的空参数的构造函数如下

public ServiceClient()

: base(new BasicHttpBinding(Application.Current.Host.Source.Scheme == Uri.UriSchemeHttps ? BasicHttpSecurityMode.Transport : BasicHttpSecurityMode.None),

new EndpointAddress(Utils.MakeServerUri("/ServiceUrl"))) {
posted @ 2014-11-06 16:02  hornet_team  阅读(213)  评论(0编辑  收藏  举报