WebInvokeAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет атрибут, указывающий, что операция службы логически является операцией вызова и ее можно вызвать моделью программирования WCF REST.
public ref class WebInvokeAttribute sealed : Attribute, System::ServiceModel::Description::IOperationBehavior
[System.AttributeUsage(System.AttributeTargets.Method)]
public sealed class WebInvokeAttribute : Attribute, System.ServiceModel.Description.IOperationBehavior
[<System.AttributeUsage(System.AttributeTargets.Method)>]
type WebInvokeAttribute = class
inherit Attribute
interface IOperationBehavior
Public NotInheritable Class WebInvokeAttribute
Inherits Attribute
Implements IOperationBehavior
- Наследование
- Атрибуты
- Реализации
Примеры
В следующем примере показано, как использовать WebInvokeAttribute атрибут.
Замечание
Method Так как свойство не указано в следующем коде, все операции службы сопоставляются с методом HTTP POST.
[ServiceContract]
public interface ICalculator2
{
[OperationContract]
[WebInvoke]
long Add(long x, long y);
[OperationContract]
[WebInvoke(UriTemplate = "Sub?x={x}&y={y}")]
long Subtract(long x, long y);
[OperationContract]
[WebInvoke(UriTemplate = "Mult?x={x}&y={y}", BodyStyle = WebMessageBodyStyle.Bare)]
long Multiply(long x, long y);
[OperationContract]
[WebInvoke(UriTemplate = "Div?x={x}&y={y}", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Xml, ResponseFormat=WebMessageFormat.Xml)]
long Divide(long x, long y);
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "Mod?x={x}&y={y}")]
long Mod(long x, long y);
}
<ServiceContract()> _
Public Interface ICalculator2
<OperationContract()> _
<WebInvoke()> _
Function Add(ByVal x As Long, ByVal y As Long) As Long
<OperationContract()> _
<WebInvoke(UriTemplate:="Sub?x={x}&y={y}")> _
Function Subtract(ByVal x As Long, ByVal y As Long) As Long
<OperationContract()> _
<WebInvoke(UriTemplate:="Mult?x={x}&y={y}", BodyStyle:=WebMessageBodyStyle.Bare)> _
Function Multiply(ByVal x As Long, ByVal y As Long) As Long
<OperationContract()> _
<WebInvoke(UriTemplate:="Div?x={x}&y={y}", BodyStyle:=WebMessageBodyStyle.Bare, RequestFormat:=WebMessageFormat.Xml, ResponseFormat:=WebMessageFormat.Xml)> _
Function Divide(ByVal x As Long, ByVal y As Long) As Long
<OperationContract()> _
<WebInvoke(Method:="POST", UriTemplate:="Mod?x={x}&y={y}")> _
Function Modulo(ByVal x As Long, ByVal y As Long) As Long
End Interface
Комментарии
Атрибут WebInvokeAttribute применяется к операции службы в дополнение к OperationContractAttribute операции и связывает операцию с UriTemplate а также базовой командой транспорта, представляющей вызов (например, HTTP POST, PUT или DELETE). Атрибут WebInvokeAttribute — это пассивное поведение операции ( IOperationBehavior методы не делают ничего), которое добавляет метаданные в описание операции. Применение атрибута WebInvokeAttribute к операции службы не влияет, если только поведение, которое не ищет эти метаданные в описании операции (например WebHttpBehavior, добавляется в коллекцию поведения службы). Определяет WebInvokeAttribute , на какой метод HTTP отвечает операция службы. По умолчанию все методы, которые применяются к запросам WebInvokeAttribute POST. Свойство Method позволяет указать другой метод HTTP. Если требуется, чтобы операция службы ответила на GET, используйте WebGetAttribute ее.
Конструкторы
| Имя | Описание |
|---|---|
| WebInvokeAttribute() |
Инициализирует новый экземпляр класса WebInvokeAttribute. |
Свойства
| Имя | Описание |
|---|---|
| BodyStyle |
Возвращает или задает стиль текста сообщений, отправляемых в операцию службы и из нее. |
| IsBodyStyleSetExplicitly |
IsBodyStyleSetExplicitly Возвращает свойство. |
| IsRequestFormatSetExplicitly |
IsRequestFormatSetExplicitly Возвращает свойство. |
| IsResponseFormatSetExplicitly |
IsResponseFormatSetExplicitly Возвращает свойство. |
| Method |
Возвращает или задает метод протокола (например, HTTP), на который реагирует операция службы. |
| RequestFormat |
Возвращает или задает RequestFormat свойство. |
| ResponseFormat |
Возвращает или задает ResponseFormat свойство. |
| TypeId |
При реализации в производном классе получает уникальный идентификатор для этого Attribute. (Унаследовано от Attribute) |
| UriTemplate |
Шаблон универсального идентификатора ресурса (URI) для операции службы. |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute) |
| GetHashCode() |
Возвращает хэш-код для этого экземпляра. (Унаследовано от Attribute) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| IsDefaultAttribute() |
При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute) |
| Match(Object) |
При переопределении в производном классе возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |