Aracılığıyla paylaş


OperationContractAttribute Sınıf

Tanım

Yöntemin, Windows Communication Foundation (WCF) uygulamasındaki bir hizmet sözleşmesinin parçası olan bir işlemi tanımladığını gösterir.

public ref class OperationContractAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method)]
public sealed class OperationContractAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method)>]
type OperationContractAttribute = class
    inherit Attribute
Public NotInheritable Class OperationContractAttribute
Inherits Attribute
Devralma
OperationContractAttribute
Öznitelikler

Örnekler

Aşağıdaki kod örneği, tek bir işlemle basit bir hizmet sözleşmesini gösterir.

using System;
using System.Collections.Generic;
using System.Net.Security;
using System.ServiceModel;
using System.Text;

namespace Microsoft.WCF.Documentation
{
  [ServiceContract(Namespace="Microsoft.WCF.Documentation")]
  public interface ISampleService{
    // This operation specifies an explicit protection level requirement.
    [OperationContract(ProtectionLevel=ProtectionLevel.EncryptAndSign)]
    string SampleMethod(string msg);
  }

  class SampleService : ISampleService
  {
  #region ISampleService Members

  public string  SampleMethod(string msg)
  {
    Console.WriteLine("Called with: {0}", msg);
      return "The service greets you: " + msg;
  }

  #endregion
  }
}
Imports System.Net.Security
Imports System.ServiceModel
Imports System.Text

Namespace Microsoft.WCF.Documentation
  <ServiceContract(Namespace:="Microsoft.WCF.Documentation")> _
  Public Interface ISampleService
    ' This operation specifies an explicit protection level requirement.
    <OperationContract(ProtectionLevel:=ProtectionLevel.EncryptAndSign)> _
    Function SampleMethod(ByVal msg As String) As String
  End Interface

  Friend Class SampleService
      Implements ISampleService
  #Region "ISampleService Members"

  Public Function SampleMethod(ByVal msg As String) As String Implements ISampleService.SampleMethod
    Console.WriteLine("Called with: {0}", msg)
       Return "The service greets you: " & msg
  End Function

  #End Region
  End Class
End Namespace

Aşağıdaki örnek, üç işlemi belirten örtük bir hizmet sözleşmesi uygulayan bir hizmettir. İşlemlerden ikisi, dönüş değeri ne olursa olsun çağırana temel alınan yanıt iletilerini döndüren iki yönlü işlemlerdir. Üçüncü işlem, temel alınan bir gelen ileti olan bir çağrı alır, ancak temel alınan yanıt iletisi döndürmez.

[ServiceContractAttribute]  
public class OneAndTwoWay  
{  
  // The client waits until a response message appears.  
  [OperationContractAttribute]  
  public int MethodOne (int x, out int y)  
  {  
    y = 34;  
    return 0;  
  }  

  // The client waits until an empty response message appears.  
  [OperationContractAttribute]  
  public void MethodTwo (int x)  
  {  
    return;  
  }  

  // The client returns as soon as an outbound message  
  // is dispatched to the service; no response  
  // message is generated or sent from the service.  
  [OperationContractAttribute(IsOneWay=true)]  
  public void MethodThree (int x)  
  {  
    return;  
  }  
}  

Açıklamalar

yönteminin OperationContractAttribute bir hizmet sözleşmesinin parçası olarak bir hizmet işlemi uyguladığını belirtmek için yöntemini uygulayın (öznitelik tarafından ServiceContractAttribute belirtilir).

İşlemin OperationContractAttribute yapısını ve meta verilerle ifade edilen değerleri denetlemek için özelliklerini kullanın:

  • Action özelliği, bu işlemi benzersiz olarak tanımlayan eylemi belirtir. WCF, eylemlerini temel alarak yöntemlere istek iletileri göndermektedir.

  • AsyncPattern özelliği, işlemin uygulandığını veya bir Begin/End yöntem çifti kullanılarak zaman uyumsuz olarak çağrılabileceğini gösterir.

  • özelliği özelliğin HasProtectionLevel açıkça ayarlanıp ayarlanmadığını ProtectionLevel gösterir.

  • IsOneWay özelliği, işlemin yalnızca tek bir giriş iletisinden oluştuğuna işaret eder. İşlemin ilişkili çıkış iletisi yok.

  • IsInitiating özelliği, bu işlemin bir oturumdaki ilk işlem olup olmadığını belirtir.

  • özelliği, IsTerminating WCF'nin işlem tamamlandıktan sonra geçerli oturumu sonlandırmaya çalışıp çalışmadığını belirtir.

  • ProtectionLevel özelliği, çalışma zamanında bir işlemin gerektirdiği ileti düzeyi güvenliği belirtir.

  • özelliği, ReplyAction işlem için yanıt iletisinin eylemini belirtir.

OperationContractAttribute özniteliği, bir yöntemin bir hizmet sözleşmesindeki bir işlem olduğunu bildirir. Yalnızca ile OperationContractAttribute özniteliklendirilen yöntemler hizmet işlemleri olarak kullanıma sunulur. ile OperationContractAttribute işaretlenmiş yöntemleri olmayan bir hizmet sözleşmesi hiçbir işlemi kullanıma sunmaz.

özelliği, AsyncPattern ve End<methodName> yöntemleri çiftinin Begin<methodName> zaman uyumsuz olarak uygulanan tek bir işlem (istemcide veya hizmette) oluşturduğunu gösterir. Bir hizmetin işlemleri zaman uyumsuz olarak uygulama özelliği bir hizmet uygulama ayrıntısıdır ve meta verilerde (Web Hizmetleri Açıklama Dili (WSDL) gibi) gösterilmez.

Benzer şekilde, istemciler hizmet yönteminin nasıl uygulandığından bağımsız olarak işlemleri zaman uyumsuz olarak çağırmayı seçebilir. Bir hizmet yöntemi biraz zaman aldığında ancak bilgileri doğrudan istemciye döndürmesi gerektiğinde istemcide hizmet işlemlerinin zaman uyumsuz olarak çağrılması önerilir. Ayrıntılar için bkz. AsyncPattern.

IsOneWay özelliği, bir yöntemin boş bir temel alınan yanıt iletisi de dahil olmak üzere hiçbir değer döndürmediğini gösterir. Bu yöntem türü bildirimler veya olay stili iletişim için kullanışlıdır. Bu tür yöntemler yanıt iletisi döndüremediğinden yöntemin bildirimi döndürmelidir void.

Önemli

Bu öznitelikteki bilgi depolarını program aracılığıyla alırken yansıma yerine sınıfını ContractDescription kullanın.

Not

IsOneWay özelliği olarak ayarlanırsa false(varsayılan), döndüren void yöntemler bile temel alınan ileti düzeyinde iki yönlü yöntemlerdir. Bu durumda altyapı, çağırana yöntemin döndürdüğünü göstermek için boş bir ileti oluşturur ve gönderir. Bu yaklaşımın kullanılması, uygulamanın ve altyapının istemciye hata bilgilerini (SOAP hatası gibi) geri göndermesini sağlar. true ayarıIsOneWay, yanıt iletisinin oluşturulmasını ve gönderilmesini önlemenin tek yoludur. Daha fazla bilgi için bkz. Tek Yönlü Hizmetler.

Action ve ReplyAction özellikleri yalnızca SOAP iletilerinin varsayılan eylemini değiştirmek için değil, tanınmayan iletiler için işleyiciler oluşturmak veya doğrudan ileti programlama için eylem eklemeyi devre dışı bırakmak için de kullanılabilir. İstemcilerin IsInitiating diğer işlemlerden önce belirli bir hizmet işlemini çağırmasını önlemek için özelliğini kullanın. İstemciler IsTerminating belirli bir hizmet işlemini çağırdıktan sonra WCF'nin kanalı kapatmasını sağlamak için özelliğini kullanın. Daha fazla bilgi için bkz. Oturumları Kullanma.

özelliği, ProtectionLevel işlem sözleşmesinde işlem iletilerinin imzalı, şifrelenmiş veya imzalı ve şifrelenmiş olup olmadığını belirtmenizi sağlar. Bağlama, sözleşmenin gerektirdiği güvenlik düzeyini sağlayamıyorsa, çalışma zamanında bir özel durum oluşturulur. Daha fazla bilgi için bkz ProtectionLevel . Koruma Düzeyini Anlama.

Oluşturucular

OperationContractAttribute()

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

Özellikler

Action

İstek iletisinin WS-Addressing eylemini alır veya ayarlar.

AsyncPattern

Bir işlemin bir hizmet sözleşmesinde methodName ve<End methodName>> yöntem çifti kullanılarak Begin< zaman uyumsuz olarak uygulandığını gösterir.

HasProtectionLevel

Bu işlem için iletilerin şifrelenip şifrelenmediğini, imzalanması gerektiğini veya her ikisini birden belirten bir değer alır.

IsInitiating

Yöntemin sunucuda oturum başlatabilecek bir işlem uygulayıp uygulamadığını belirten bir değer alır veya ayarlar (böyle bir oturum varsa).

IsOneWay

İşlemin yanıt iletisi döndürdüğünü belirten bir değer alır veya ayarlar.

IsTerminating

Varsa, yanıt iletisi gönderildikten sonra hizmet işleminin sunucunun oturumu kapatmasına neden olup olmadığını belirten bir değer alır veya ayarlar.

Name

İşlemin adını alır veya ayarlar.

ProtectionLevel

bir işlemin iletilerinin şifrelenmesini, imzalanması veya her ikisini birden yapması gerektiğini belirten bir değer alır veya ayarlar.

ReplyAction

İşlemin yanıt iletisi için SOAP eyleminin değerini alır veya ayarlar.

TypeId

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

(Devralındığı yer: Attribute)

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)

Şunlara uygulanır