2

我有几个 WCF 服务被不同的 Silverlight 应用程序使用。我目前正在使用具有相当标准设置的slsvcutil.exe来生成我的 Silverlight 代理对象:

"%ProgramFiles%\microsoft sdks\silverlight\v4.0\tools\slsvcutil.exe" http://myhost/MyService.svc?wsdl /out:Proxy.cs /edb /namespace:"*,My.Namespace" /ct:System.Collections.ObjectModel.ObservableCollection`1 /r:"%ProgramFiles%\Microsoft Silverlight\4.0.50524.0\System.Windows.dll"

我想做的是在多个服务及其生成的 Silverlight 代理之间共享一些类型,特别是 base RequestMessageResponseMessage和。ApplicationFault我希望这些类型位于它们自己的公共 Silverlight 命名空间中,以便我可以使用共享的 Silverlight 代码来轮询服务请求或检查 SOAP 错误并将其转换为可以抛出的已知异常类型。

我认为这可以通过使用 slsvcutil.exe 上的/r/reference开关来完成,方法是使用共享类型指定 DLL 的路径。我尝试像这样构建代理,但它似乎仍然为我试图共享的对象生成新的不兼容类型:

"%ProgramFiles%\microsoft sdks\silverlight\v4.0\tools\slsvcutil.exe" http://myhost/Service.svc?wsdl /out:Proxy.cs /edb /namespace:"*,My.Namespace" /ct:System.Collections.ObjectModel.ObservableCollection`1 /r:"%ProgramFiles%\Microsoft Silverlight\4.0.50524.0\System.Windows.dll" /r:"C:\path\to\MySharedTypes.dll"

关于可能出现问题的任何想法?还是我对/r开关可用于 slsvcutil.exe 的用途有错误的印象?

4

0 回答 0