WebInvokeAttribute Класс

Определение

Представляет атрибут, указывающий, что операция службы логически является операцией вызова и может быть вызвана моделью программирования REST платформы WCF.

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
Атрибуты
Реализации

Примеры

В следующем примере показано использование атрибута 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)

Явные реализации интерфейса

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса.

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.

(Унаследовано от Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Реализует метод AddBindingParameters(OperationDescription, BindingParameterCollection).

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Реализует метод ApplyClientBehavior(OperationDescription, ClientOperation).

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Реализует метод ApplyDispatchBehavior(OperationDescription, DispatchOperation).

IOperationBehavior.Validate(OperationDescription)

Реализует метод Validate(OperationDescription).

Применяется к