Подмножество сервисных операций на клиенте в WCF - PullRequest
1 голос
/ 07 декабря 2009

Если у меня есть контракт на обслуживание, содержащий 2 операции, возможно ли иметь контракт на обслуживание на стороне клиента (интерфейс .NET), в котором есть только одна из этих операций? В более общем смысле, возможно ли использовать только подмножество сервисных операций на клиенте и даже не создавать сгенерированный код для других операций (и соответствующих им контрактов данных)?

Ответы [ 2 ]

1 голос
/ 07 декабря 2009

Да, это определенно возможно. Поскольку вы упоминаете сгенерированный код, я предполагаю, что вы используете сервисные ссылки в Visual Studio. Если это так, вы можете просто отредактировать сгенерированные интерфейсы и классы, чтобы пропустить операции, которые вы хотите исключить. Однако вам придется выполнять это редактирование каждый раз, когда вы обновляете ссылку на службу в своем клиентском проекте, поэтому, вероятно, вы не захотите применять этот подход, если не ожидается, что интерфейс службы изменится.

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

1 голос
/ 07 декабря 2009

Правильный способ сделать это - создать новый OperationContract, который содержит только метод, который вы хотите предоставить, а затем связать этот OperationContract с новой конечной точкой и предоставить эту конечную точку вашему клиенту.

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