У меня есть несколько служб 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"
Я бы хотел совместно использовать некоторые типы , в частности, базовые RequestMessage
, ResponseMessage
и ApplicationFault
между несколькими службами и сгенерированными им прокси Silverlight. Мне бы хотелось, чтобы эти типы находились в их собственном общем пространстве имен Silverlight, чтобы я мог использовать общий код Silverlight для опроса запроса службы или проверки на наличие ошибки SOAP и преобразования ее в известный тип исключения, который может быть выдан.
Я думал, что это можно сделать с помощью переключателя / r или / reference на slsvcutil.exe, указав путь к 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?