TransactionFlowAttribute Klas

Definitie

Hiermee geeft u op of een servicebewerking binnenkomende transacties van een client accepteert.

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
Overname
TransactionFlowAttribute
Kenmerken
Implementeringen

Voorbeelden

In het volgende codevoorbeeld ziet u het gebruik van deze opsomming samen met de TransactionFlowOption klasse op bewerkingsniveau.

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

Opmerkingen

Het TransactionFlowAttribute is een kenmerk dat declaratief wordt gebruikt om een specifiek transactiestroombeleid te koppelen aan een servicebewerking. De TransactionFlowOption eigenschap van dit kenmerk geeft aan of de respectieve bewerking een transactie accepteert die van de client wordt gestroomd, of als de bewerking vereist dat de client altijd een transactie doorstroomt. De TransactionFlowAttribute kan ook worden gebruikt als een bewerkingsgedrag om programmatisch een transactiestroombeleid te koppelen aan een specifieke bewerking. In dit geval moet deze worden toegevoegd aan de Behaviors verzameling op de beschrijving van de bewerking.

Note

De OperationContract voor elke methode die gebruikmaakt van de TransactionFlowAttribute moet een volledig gekwalificeerde Action tekenreeks bieden. Een waarde van '*' wordt niet ondersteund.

Constructors

Name Description
TransactionFlowAttribute(TransactionFlowOption)

Initialiseert een nieuw exemplaar van de TransactionFlowAttribute klasse.

Eigenschappen

Name Description
Transactions

Hiermee wordt een waarde opgehaald die aangeeft of de binnenkomende transactie wordt ondersteund.

TypeId

Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id.

(Overgenomen van Attribute)

Methoden

Name Description
Equals(Object)

Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
GetHashCode()

Retourneert de hash-code voor dit exemplaar.

(Overgenomen van Attribute)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IsDefaultAttribute()

Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse.

(Overgenomen van Attribute)
Match(Object)

Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

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

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Voegt extra parameters (instellingen) toe aan de bindingscontext om het gedrag van deze bewerking te ondersteunen. Deze methode kan niet worden overgenomen.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Koppelt de kenmerkfunctionaliteit aan het ProxyOperation object voor de methode die door het kenmerk wordt gemarkeerd. Deze methode kan niet worden overgenomen.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Koppelt de kenmerkfunctionaliteit aan het DispatchOperation object voor de methode die door het kenmerk wordt gemarkeerd. Deze methode kan niet worden overgenomen.

IOperationBehavior.Validate(OperationDescription)

Controleert of de bewerking dit gedrag kan ondersteunen. Deze methode kan niet worden overgenomen.

Van toepassing op

Zie ook