Поделиться через


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

Примеры

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

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