Прокси-класс, не имеющий равного метода WCF - PullRequest
4 голосов
/ 16 февраля 2011

В моем веб-сервисе есть класс DataContract, и он наследуется от IEquatable.Но мой прокси-класс, созданный веб-сервисом siverlight, не имеет равных.Может кто-нибудь сказать мне, почему это происходит, и есть ли способ достичь этого?

1 Ответ

5 голосов
/ 16 февраля 2011

WCF сериализует только данные из контрактов данных - нет методов или поведения.

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

WCF равен НЕ система «удаленного вызова процедур» или «удаленного взаимодействия с объектами», и, таким образом, при создании прокси-сервера она будет обеспечивать идентичность подписи данных на проводе (посредством сериализации XML) - и это all это так.

Единственный вариант для достижения того, что вы ищете, это:

  • создать отдельную сборку библиотеки классов, которая содержит классы контрактов на обслуживание и данные
  • при создании ссылки на службу теперь ссылаются на общую сборку контракта как из кода службы на стороне сервера, так и из приложения Silverlight на стороне клиента
  • , Visual Studio будет повторно использовать общие общие классыв сборке, а не заново создавать прокси-классы данных (и потерять методы в процессе)
...