WCF REST API - требуется ли рабочий контракт? - PullRequest
1 голос
/ 16 июня 2020

Мне было интересно, требуется ли атрибут [OperationContract] ? Я создал новую конечную точку API и забыл указать этот атрибут над методом, однако я все еще мог успешно получить доступ к этой конечной точке через Postman. Мне было интересно, было ли такое поведение ожидаемым? Я помню, как читал, что методы в [ServiceContract] по сути являются opt-in , поэтому разве эта конечная точка не должна быть доступна без этого атрибута?

Кроме того, те же рассуждения применимы к атрибуту [DataContract] ? Множество классов, которые будут использоваться для отправки ответа вызывающему, не украшены этим атрибутом.

1 Ответ

0 голосов
/ 17 июня 2020

Это связано со структурой. Net. Если вы используете. Net Framework 3.5, вам необходимо добавить OperationContract в WCF REST API. Но если вы используете. Net framework 4.0 или выше, вы можете избежать добавления OperationContract, потому что .Netframework 4.0 и более поздние версии WebInvoke реализуют IOperationContractAttributeProvider.

enter image description here

Это WebInvoke в. Net framework 4.0. Вы можете видеть, что он реализует интерфейс IOperationContractAttributeProvider.

enter image description here

Это WebInvoke в. Net framework 3.5.

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