Совместное использование типов в WCF с использованием VS 2008 не работает - PullRequest
0 голосов
/ 13 ноября 2008

Я пытаюсь разделить DTO из моей сборки слоя данных между клиентом и службой WCF. Это работает с использованием svcutil, но не работает при использовании VS2008. VS2008 генерирует свои собственные объекты DTO, тогда как svcutil использует общий тип данных.

Параметры svcutil, которые я использовал:

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SvcUtil" 
          /serializer:DataContractSerializer
          /language:vb 
          /out:ServiceClient.cs
          /namespace:*,CommonWCF 
          /noconfig
          /reference:"D:\trunk\DataLayer\bin\Debug\DataLayer.dll"
          /collectionType:System.Collections.Generic.List`1
          http://localhost:3371/Common.svc

Я читал, что VS2008 просто вызывает svcutil за кулисами, так почему он не работает? Я действительно хочу избежать добавления ручного процесса в процесс сборки.

Ответы [ 3 ]

4 голосов
/ 29 декабря 2008

Просто используйте ClientFactory<T>.

Вам на самом деле не нужен ни svcutil, ни справочный сервис. Код, который они генерируют, является только раздутой оболочкой вокруг ClientFactory, которая практически не добавляет функциональности.

0 голосов
/ 15 ноября 2008

Я создал командный файл, который вызывает svcutil, и добавил его в качестве задачи перед сборкой, чтобы избежать ручной операции. Это решило мою проблему, но я до сих пор не уверен, почему между svcutil и методом gui vs2008 другое поведение.

0 голосов
/ 14 ноября 2008

Если вы избегаете использования ссылки на службу и просто включаете ссылку на сгенерированный svcutil код, это должно избежать этой проблемы. Наши DTO находятся в общих сборках.

...