さまざまなSilverlightアプリケーションで使用されているWCFサービスがいくつかあります。私は現在、Silverlightプロキシオブジェクトを生成するためにかなり標準的な設定でslsvcutil.exeを使用しています。
"%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プロキシ間で共有することです。これらの型を独自の共通のSilverlight名前空間に配置して、共有Silverlightコードを使用して、サービスリクエストのポーリングや、SOAP障害のチェックを行い、スロー可能な既知の例外型に変換できるようにします。RequestMessage
ResponseMessage
ApplicationFault
これは、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"
何がうまくいかないかについてのアイデアはありますか?または、slsvcutil.exeで/ rスイッチを使用できるという誤った印象がありますか?