TransactionFlowAttribute Kelas

Definisi

Menentukan apakah operasi layanan menerima transaksi masuk dari klien.

public ref class TransactionFlowAttribute sealed : Attribute, System::ServiceModel::Description::IOperationBehavior
[System.AttributeUsage(System.AttributeTargets.Method)]
public sealed class TransactionFlowAttribute : Attribute, System.ServiceModel.Description.IOperationBehavior
[<System.AttributeUsage(System.AttributeTargets.Method)>]
type TransactionFlowAttribute = class
    inherit Attribute
    interface IOperationBehavior
Public NotInheritable Class TransactionFlowAttribute
Inherits Attribute
Implements IOperationBehavior
Warisan
TransactionFlowAttribute
Atribut
Penerapan

Contoh

Contoh kode berikut menunjukkan penggunaan enumerasi ini bersama dengan TransactionFlowOption kelas di tingkat operasi.

using System;  
using System.ServiceModel;  
using System.Transactions;  

namespace Microsoft.WCF.Documentation  
{  
  [ServiceContract(  
    Namespace="http://microsoft.wcf.documentation",   
    SessionMode=SessionMode.Required  
  )]  
  public interface IBehaviorService  
  {  
    [OperationContract]  
    [TransactionFlow(TransactionFlowOption.Mandatory)]  
    string TxWork(string message);  
  }  

  // Note: To use the TransactionIsolationLevel property, you   
  // must add a reference to the System.Transactions.dll assembly.  
  /* The following service implementation:  
   *   -- Processes messages on one thread at a time  
   *   -- Creates one service object per session  
   *   -- Releases the service object when the transaction commits  
   */  
  [ServiceBehavior(  
    ConcurrencyMode=ConcurrencyMode.Single,  
    InstanceContextMode=InstanceContextMode.PerSession,  
    ReleaseServiceInstanceOnTransactionComplete=true  
  )]  
  public class BehaviorService : IBehaviorService, IDisposable  
  {  
    Guid myID;  

    public BehaviorService()  
    {  
      myID = Guid.NewGuid();  
      Console.WriteLine(  
        "Object "  
        + myID.ToString()  
        + " created.");  
    }  

    /*  
    / * The following operation-level behaviors are specified:  
    / * Always executes under a transaction scope.  
    / * The transaction scope is completed when the operation  
    / * terminates without an unhandled exception.  
    /*  
    [OperationBehavior(  
      TransactionAutoComplete = true,  
      TransactionScopeRequired = true  
    )]  
    public string TxWork(string message)  
    {  
      // Do some transactable work.  
      Console.WriteLine("TxWork called with: " + message);  
      // Display transaction information.  

      TransactionInformation info = Transaction.Current.TransactionInformation;  
      Console.WriteLine("The distributed tx ID: {0}.", info.DistributedIdentifier);  
      Console.WriteLine("The tx status: {0}.", info.Status);  
      return String.Format("Hello. This was object {0}.",myID.ToString()) ;  
    }  

    public void Dispose()  
    {  
      Console.WriteLine(  
        "Service "  
        + myID.ToString()  
        + " is being recycled."  
      );  
    }  
  }  
}  

Keterangan

TransactionFlowAttribute adalah atribut yang digunakan secara deklaratif untuk mengaitkan kebijakan alur transaksi tertentu dengan operasi layanan. Properti TransactionFlowOption atribut ini menentukan apakah operasi masing-masing menerima transaksi yang mengalir dari klien, atau jika operasi mengharuskan klien untuk selalu mengalirkan transaksi. juga TransactionFlowAttribute dapat digunakan sebagai perilaku operasi untuk mengaitkan kebijakan alur transaksi secara terprogram dengan operasi tertentu. Dalam hal ini, harus ditambahkan ke Behaviors koleksi pada deskripsi operasi.

Note

OperationContract untuk setiap metode yang menggunakan TransactionFlowAttribute harus menyediakan string yang sepenuhnya memenuhi syaratAction. Nilai "*" tidak didukung.

Konstruktor

Nama Deskripsi
TransactionFlowAttribute(TransactionFlowOption)

Menginisialisasi instans baru dari kelas TransactionFlowAttribute.

Properti

Nama Deskripsi
Transactions

Mendapatkan nilai yang menunjukkan apakah transaksi masuk didukung.

TypeId

Ketika diimplementasikan dalam kelas turunan, mendapatkan pengidentifikasi unik untuk Attributeini.

(Diperoleh dari Attribute)

Metode

Nama Deskripsi
Equals(Object)

Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
GetHashCode()

Mengembalikan kode hash untuk instans ini.

(Diperoleh dari Attribute)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
IsDefaultAttribute()

Ketika ditimpa dalam kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan.

(Diperoleh dari Attribute)
Match(Object)

Saat ditimpa dalam kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

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

Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1).

(Diperoleh dari Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Menyediakan akses ke properti dan metode yang diekspos oleh objek.

(Diperoleh dari Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Menambahkan parameter tambahan (pengaturan) ke konteks pengikatan untuk mendukung perilaku operasi ini. Metode ini tidak dapat diwariskan.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Melampirkan fungsionalitas atribut ke ProxyOperation objek untuk metode yang ditandai atribut. Metode ini tidak dapat diwariskan.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Melampirkan fungsionalitas atribut ke DispatchOperation objek untuk metode yang ditandai atribut. Metode ini tidak dapat diwariskan.

IOperationBehavior.Validate(OperationDescription)

Memverifikasi bahwa operasi dapat mendukung perilaku ini. Metode ini tidak dapat diwariskan.

Berlaku untuk

Lihat juga