WebInvokeAttribute Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa un atributo que indica que una operación de servicio es lógicamente una operación de invocación y que el modelo de programación WCF REST puede llamarla.
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
- Herencia
- Atributos
- Implementaciones
Ejemplos
En el ejemplo siguiente se muestra cómo utilizar el atributo WebInvokeAttribute.
Nota
Dado que la propiedad Method no se especifica en el código siguiente, todas las operaciones del servicio se asignan al método POST de HTTP.
[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
Comentarios
El atributo WebInvokeAttribute se aplica a una operación de servicio además del OperationContractAttribute y asocia la operación a una UriTemplate
así como a un verbo de transporte subyacente que representa una invocación (por ejemplo, HTTP POST, PUT o DELETE). El WebInvokeAttribute atributo es un comportamiento de operación pasiva (los IOperationBehavior métodos no hacen nada) que agrega metadatos a la descripción de la operación. Aplicar el atributo WebInvokeAttribute a una operación de servicio no tiene ningún efecto, a menos que se agregue un comportamiento que busque estos metadatos en la descripción de la operación (como WebHttpBehavior) a la colección de comportamientos del servicio. WebInvokeAttribute determina a qué método HTTP responde una operación del servicio. De forma predeterminada, todos los métodos que tienen WebInvokeAttribute aplicado responden a las solicitudes POST. La propiedad Method permite especificar un método HTTP diferente. Si desea que una operación del servicio responda a GET, utilice el WebGetAttribute en su lugar.
Constructores
WebInvokeAttribute() |
Inicializa una nueva instancia de la clase WebInvokeAttribute. |
Propiedades
BodyStyle |
Obtiene o establece el estilo del cuerpo de los mensajes que se envían hacia y desde la operación de servicio. |
IsBodyStyleSetExplicitly |
Obtiene la propiedad IsBodyStyleSetExplicitly. |
IsRequestFormatSetExplicitly |
Obtiene la propiedad IsRequestFormatSetExplicitly. |
IsResponseFormatSetExplicitly |
Obtiene la propiedad IsResponseFormatSetExplicitly. |
Method |
Obtiene o establece el método del protocolo (por ejemplo, HTTP) al que responde la operación de servicio. |
RequestFormat |
Obtiene o establece la propiedad RequestFormat. |
ResponseFormat |
Obtiene o establece la propiedad ResponseFormat. |
TypeId |
Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Heredado de Attribute) |
UriTemplate |
La plantilla Identificador uniforme de recursos (URI) para la operación del servicio. |
Métodos
Equals(Object) |
Devuelve un valor que indica si esta instancia es igual que un objeto especificado. (Heredado de Attribute) |
GetHashCode() |
Devuelve el código hash de esta instancia. (Heredado de Attribute) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
IsDefaultAttribute() |
Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada. (Heredado de Attribute) |
Match(Object) |
Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Heredado de Attribute) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |