2010-09-03 5 views
0

Я уверен, что это глупый вопрос, но здесь все равно. У меня есть служба данных WCF, выставляющая объект, скажем, Person. Этот объект Person находится в пространстве имен Domain.Person. У меня есть клиент с прокси-сервером для службы данных WCF. Этот клиент имеет код, который работает с указанным классом Domain.Person. Однако прокси возвращает другой тип Client.Person и жалуется на невозможность конвертировать между ними.WCF Data Service Proxy Class

Так что, кроме меня, если быть глупым (скорее всего), это не прокси-сервер, который должен возвращать тип Domain.Person? А если нет, должен ли Клиент.Персон быть не таким? Извините, немного смущен.

ответ

1

У меня нет опыта работы с службами данных WCF, но мне кажется, что прокси генерирует собственную версию класса Domain.Person и использует это.
При добавлении ссылки на нормальную ссылку на wcf можно указать сборки, из которых типы могут быть повторно использованы при генерации прокси. Это скрыто под кнопкой «Дополнительно» в диалоговом окне, где вы выбираете свою службу WCF.
Если вы уверены, что это включено, я бы попытался открыть сгенерированный прокси (с указанием всех файлов, которые вы можете увидеть сгенерированный файл .cs) и сравнения типов с типами доменов. Если есть существенные различия, добавьте их в свои типы доменов, удалите ссылку на службу и добавьте ее снова. Wash-rinse-repeat ...

Опять же, мой опыт работы с услугами передачи данных WCF не существует, поэтому, возможно, у кого-то есть более точный ответ.

+0

Ах, правильно, я проверил проект, содержащий ссылку на службу, и отметил, что проект, содержащий фактический объект домена, не ссылался. Затем я попытался добавить это как ссылку, чтобы понять, что клиент - Sliverlight, и он не может ссылаться на проект объекта домена, поскольку это не проект Silverlight. Очевидно, объект домена должен быть агностическим клиентом, любыми другими идеями? Большое спасибо за вашу помощь. –

+0

либо изолировать объекты домена в библиотеке классов silverlight, и ссылаться на него как на вашем клиенте, так и на сервере (это работает от silverlight 4 up - см. Http://msmvps.com/blogs/kevinmcneish/archive/2010/05/28/silverlight -4-101-using-silverlight-assemblysies-in-your-non-silverlight-projects.aspx) Или создать библиотеку классов silverlight и связать файлы с ней, как описано здесь: http://stackoverflow.com/questions/3122169/добавление ссылки к Silverlight-проектов из-другой-не-SilverLight-проект – stombeur