Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

TransactionFlowAttribute-Klasse

 

Veröffentlicht: Oktober 2016

Legt fest, ob ein Dienstvorgang die vom Client eingehenden Transaktionen annimmt.

Namespace:   System.ServiceModel
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

System.Object
  System.Attribute
    System.ServiceModel.TransactionFlowAttribute

[AttributeUsageAttribute(AttributeTargets.Method)]
public sealed class TransactionFlowAttribute : Attribute, IOperationBehavior

NameBeschreibung
System_CAPS_pubmethodTransactionFlowAttribute(TransactionFlowOption)

Initialisiert eine neue Instanz der TransactionFlowAttribute-Klasse.

NameBeschreibung
System_CAPS_pubpropertyTransactions

Ruft einen Wert ab, der angibt, ob die eingehende Transaktion unterstützt wird.

System_CAPS_pubpropertyTypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.(Geerbt von „Attribute“.)

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Diese API unterstützt die Produkt Infrastruktur und sollte nicht direkt aus dem Code verwendet werden. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodGetHashCode()

Gibt den Hashcode für diese Instanz zurück.(Geerbt von „Attribute“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodIsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodMatch(Object)

Ruft beim Überschreiben in einer abgeleiteten Klasse gibt einen Wert, der angibt, ob diese Instanz gleich ein angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

NameBeschreibung
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethodIOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Fügt dem Bindungskontext zusätzliche Parameter (Einstellungen) hinzu, um das Verhalten dieses Vorgangs zu unterstützen. Diese Methode kann nicht vererbt werden.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Fügt die Attributfunktionalität an das ProxyOperation-Objekt für die Methode an, die vom Attribut markiert wird. Diese Methode kann nicht vererbt werden.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Fügt die Attributfunktionalität an das DispatchOperation-Objekt für die Methode an, die vom Attribut markiert wird. Diese Methode kann nicht vererbt werden.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIOperationBehavior.Validate(OperationDescription)

Überprüft, dass der Vorgang dieses Verhalten unterstützen kann. Diese Methode kann nicht vererbt werden.

TransactionFlowAttribute ist ein Attribut, das deklarativ verwendet wird, um eine bestimmte Transaktionsflussrichtlinie mit einem Dienstvorgang zu verknüpfen. Die TransactionFlowOption-Eigenschaft dieses Attributs gibt an, ob der entsprechende Vorgang eine vom Client übertragene Transaktion annimmt, oder ob der Vorgang erfordert, dass der Client immer eine Transaktion überträgt. Das TransactionFlowAttribute kann auch als Vorgangsverhalten verwendet werden, um eine Transaktionsflussrichtlinie programmgesteuert mit einem bestimmten Vorgang zu verknüpfen. In diesem Fall sollte das Attribut zur Behaviors-Auflistung in der Vorgangsbeschreibung hinzugefügt werden.

System_CAPS_noteHinweis

Der OperationContract jeder Methode, die das TransactionFlowAttribute verwendet, muss eine vollständig qualifizierte Action-Zeichenfolge bereitstellen. Der Wert "*" wird nicht unterstützt.

Im folgenden Codebeispiel wird die Verwendung dieser Enumeration in Verbindung mit der TransactionFlowOption-Klasse auf Betriebsebene dargestellt.

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

.NET Framework
Verfügbar seit 3.0

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: