Создание интерфейса видимым через веб-сервисы WCF - PullRequest
0 голосов
/ 08 июля 2011

Я хотел бы объявить интерфейс на своем уровне веб-службы, а затем попросить вызывающего пользователя создавать объекты этого типа интерфейса через прокси-сервер и использовать их для вызова методов службы. Однако, когда я украшаю интерфейс атрибутом DataContract, я получаю сообщение об ошибке, в котором говорится, что этот атрибут может быть применен только к классу, структуре и перечислению. Я не думаю, что атрибут ServiceContract имеет смысл, так как интерфейс, который я пытаюсь раскрыть, используется только для целей передачи данных. Я также заметил, что когда интерфейс был оформлен с помощью ServiceContract, он не отображался в созданном прокси-классе. Какая лучшая практика для этого?

Ответы [ 2 ]

1 голос
/ 08 июля 2011

Вы не можете этого сделать.Интерфейс «DataContract» не может быть представлен как часть метаданных.Также, даже если вы совместно используете интерфейс (в сборке), ваши клиенты не смогут отправить свою реализацию обратно в ваш сервис, потому что принимающей стороне нужен реальный тип для десериализованного экземпляра.

0 голосов
/ 08 июля 2011

Сервисный контракт используется в интерфейсе, то есть в названии сервисов.Контракт данных используется для класса, данные, которые вы отправляете.

  • ServiceContract на интерфейсе
  • OperationContract на методы
  • DataContract на класс
  • DataMember по свойствам

См .: http://msdn.microsoft.com/en-us/magazine/cc163647.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...