Udostępnij za pośrednictwem


TransactionFlowAttribute Klasa

Definicja

Określa, czy operacja usługi akceptuje transakcje przychodzące od klienta.

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
Dziedziczenie
TransactionFlowAttribute
Atrybuty
Implementuje

Przykłady

Poniższy przykład kodu przedstawia użycie tego wyliczenia wraz z klasą TransactionFlowOption na poziomie operacji.

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."  
      );  
    }  
  }  
}  

Uwagi

Jest TransactionFlowAttribute to atrybut używany deklaratywnie do skojarzenia określonych zasad przepływu transakcji z operacją usługi. Właściwość TransactionFlowOption tego atrybutu określa, czy odpowiednia operacja akceptuje transakcję przepływaną z klienta, czy operacja wymaga, aby klient zawsze przepływał transakcję. Może TransactionFlowAttribute być również używany jako zachowanie operacji w celu programowego skojarzenia zasad przepływu transakcji z określoną operacją. W takim przypadku należy dodać ją do Behaviors kolekcji w opisie operacji.

Uwaga

Dla OperationContract każdej metody, która używa metody TransactionFlowAttribute , musi podać w pełni kwalifikowany Action ciąg. Wartość "*" nie jest obsługiwana.

Konstruktory

TransactionFlowAttribute(TransactionFlowOption)

Inicjuje nowe wystąpienie klasy TransactionFlowAttribute.

Właściwości

Transactions

Pobiera wartość wskazującą, czy transakcja przychodząca jest obsługiwana.

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu .

(Odziedziczone po Attribute)

Metody

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()

W przypadku zastąpienia w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

Po przesłonięciu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Dodaje dodatkowe parametry (ustawienia) do kontekstu powiązania w celu obsługi zachowania tej operacji. Nie można dziedziczyć tej metody.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Dołącza funkcję atrybutu do ProxyOperation obiektu dla metody oznaczanej przez atrybut. Nie można dziedziczyć tej metody.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Dołącza funkcję atrybutu do DispatchOperation obiektu dla metody oznaczanej przez atrybut. Nie można dziedziczyć tej metody.

IOperationBehavior.Validate(OperationDescription)

Sprawdza, czy operacja może obsługiwać to zachowanie. Nie można dziedziczyć tej metody.

Dotyczy

Zobacz też