Что такое контракт в конечной точке webhttpbinding?
При создании службы WCF RESTful часть конфигурации включает создание конечной точки службы. Что-то вроде ниже
<service name="MyService" behaviorConfiguration="serviceBehavior">
<endpoint address="" binding="webHttpBinding" bindingConfiguration="UsernameWithTransport" contract="IMyService" behaviorConfiguration="web"></endpoint>
</service>
Мой вопрос, что именно contract
предусмотрено? Предоставляет ли он какую-то информацию браузеру, который пытается получить к нему доступ?
1 ответ
В WCF Контракт ( ContractDescription) представляет собой набор операций, который указывает, что конечная точка сообщает внешнему миру. Каждая операция - это обмен сообщениями. Например, сообщение запроса и соответствующее ответное сообщение образуют обмен сообщениями запроса / ответа.
Объект ContractDescription используется для описания контрактов WCF и их операций. В рамках ContractDescription каждая операция по контракту имеет соответствующее OperationDescription, которое описывает аспекты каждой операции, которая является частью договора, например, является ли операция односторонней или запросом / ответом. Каждое OperationDescription также описывает сообщения, составляющие операцию, используя MessageDescriptionCollection. ContractDescription содержит ссылку на интерфейс, который определяет контракт с использованием модели программирования. Этот интерфейс помечен с помощью ServiceContractAttribute, а его методы, соответствующие операциям конечной точки, помечены с помощью OperationContractAttribute.
Контракт также важен, потому что вы можете представить отдельные сервисные контракты в одной службе WCF.