TransactionFlowAttribute Klass

Definition

Anger om en tjänståtgärd accepterar inkommande transaktioner från en klient.

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
Arv
TransactionFlowAttribute
Attribut
Implementeringar

Exempel

I följande kodexempel visas användningen av den här uppräkningen tillsammans med TransactionFlowOption klassen på åtgärdsnivå.

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

Kommentarer

TransactionFlowAttribute är ett attribut som används deklarativt för att associera en specifik transaktionsflödesprincip med en tjänståtgärd. Egenskapen TransactionFlowOption för det här attributet anger om respektive åtgärd accepterar en transaktion som flödat från klienten eller om åtgärden kräver att klienten alltid flödar en transaktion. TransactionFlowAttribute Kan också användas som ett åtgärdsbeteende för att programmatiskt associera en transaktionsflödesprincip med en specifik åtgärd. I det här fallet bör den läggas till i Behaviors samlingen i åtgärdens beskrivning.

Note

För OperationContract varje metod som använder TransactionFlowAttribute måste ange en fullständigt kvalificerad Action sträng. Värdet "*" stöds inte.

Konstruktorer

Name Description
TransactionFlowAttribute(TransactionFlowOption)

Initierar en ny instans av TransactionFlowAttribute klassen.

Egenskaper

Name Description
Transactions

Hämtar ett värde som anger om den inkommande transaktionen stöds.

TypeId

När den implementeras i en härledd klass hämtar du en unik identifierare för den här Attribute.

(Ärvd från Attribute)

Metoder

Name Description
Equals(Object)

Returnerar ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
GetHashCode()

Returnerar hash-koden för den här instansen.

(Ärvd från Attribute)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
IsDefaultAttribute()

När den åsidosättas i en härledd klass anger du om värdet för den här instansen är standardvärdet för den härledda klassen.

(Ärvd från Attribute)
Match(Object)

När den åsidosätts i en härledd klass returneras ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

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

Mappar en uppsättning namn till en motsvarande uppsättning av sändningsidentifierare.

(Ärvd från Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hämtar typinformationen för ett objekt, som kan användas för att hämta typinformationen för ett gränssnitt.

(Ärvd från Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hämtar antalet typinformationsgränssnitt som ett objekt tillhandahåller (antingen 0 eller 1).

(Ärvd från Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Ger åtkomst till egenskaper och metoder som exponeras av ett objekt.

(Ärvd från Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Lägger till extra parametrar (inställningar) i bindningskontexten för att stödja den här åtgärdens beteende. Den här metoden kan inte ärvas.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Kopplar attributfunktionen till ProxyOperation objektet för metoden som attributet markerar. Den här metoden kan inte ärvas.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Kopplar attributfunktionen till DispatchOperation objektet för metoden som attributet markerar. Den här metoden kan inte ärvas.

IOperationBehavior.Validate(OperationDescription)

Verifierar att åtgärden kan stödja det här beteendet. Den här metoden kan inte ärvas.

Gäller för

Se även