Aracılığıyla paylaş


WebInvokeAttribute Sınıf

Tanım

Bir hizmet işleminin mantıksal olarak bir çağırma işlemi olduğunu ve WCF REST programlama modeli tarafından çağrılabileceğini belirten bir özniteliği temsil eder.

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
Devralma
WebInvokeAttribute
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki örnekte özniteliğin nasıl kullanılacağı gösterilmektedir WebInvokeAttribute .

Not

Method Özelliği aşağıdaki kodda belirtilmediğinden, tüm hizmet işlemleri HTTP POST yöntemiyle eşlenir.

[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

Açıklamalar

WebInvokeAttribute özniteliği, öğesine ek olarak bir hizmet işlemine OperationContractAttribute uygulanır ve işlemi bir UriTemplate çağrıyı temsil eden bir temel aktarım fiiliyle (örneğin, HTTP POST, PUT veya DELETE) ilişkilendirir. WebInvokeAttribute özniteliği, işlem açıklamasına IOperationBehavior meta veri ekleyen pasif bir işlem davranışıdır (yöntemler hiçbir şey yapmaz). Özniteliğin WebInvokeAttribute bir hizmet işlemine uygulanması, işlemin davranış koleksiyonuna işlem açıklamasında (gibi WebHttpBehavior) bu meta verileri arayabilen bir davranış eklenmediği sürece hiçbir etkisi olmaz. , WebInvokeAttribute bir hizmet işleminin hangi HTTP yöntemine yanıt vereceğini belirler. Varsayılan olarak, uygulanan tüm yöntemler WebInvokeAttribute POST isteklerine yanıt verir. Method özelliği farklı bir HTTP yöntemi belirtmenize olanak tanır. Bir hizmet işleminin GET'e yanıt vermesini istiyorsanız, bunun yerine öğesini WebGetAttribute kullanın.

Oluşturucular

WebInvokeAttribute()

WebInvokeAttribute sınıfının yeni bir örneğini başlatır.

Özellikler

BodyStyle

Hizmet işlemine gönderilen ve hizmetten gönderilen iletilerin gövde stilini alır veya ayarlar.

IsBodyStyleSetExplicitly

IsBodyStyleSetExplicitly özelliğini alır.

IsRequestFormatSetExplicitly

IsRequestFormatSetExplicitly özelliğini alır.

IsResponseFormatSetExplicitly

IsResponseFormatSetExplicitly özelliğini alır.

Method

Hizmet işleminin yanıt verdiği protokolü (örneğin HTTP) alır veya ayarlar.

RequestFormat

Özelliğini alır veya ayarlar RequestFormat .

ResponseFormat

Özelliğini alır veya ayarlar ResponseFormat .

TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)
UriTemplate

Hizmet işlemi için Tekdüzen Kaynak Tanımlayıcısı (URI) şablonu.

Yöntemler

Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür.

(Devralındığı yer: Attribute)
GetHashCode()

Bu örneğe ilişkin karma kodu döndürür.

(Devralındığı yer: Attribute)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

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

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

AddBindingParameters(OperationDescription, BindingParameterCollection) yöntemini uygular.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

ApplyClientBehavior(OperationDescription, ClientOperation) yöntemini uygular.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

ApplyDispatchBehavior(OperationDescription, DispatchOperation) yöntemini uygular.

IOperationBehavior.Validate(OperationDescription)

Validate(OperationDescription) yöntemini uygular.

Şunlara uygulanır