OperationBehaviorAttribute OperationBehaviorAttribute OperationBehaviorAttribute OperationBehaviorAttribute Class

Definition

Gibt das lokale Ausführungsverhalten einer Dienstmethode an.Specifies the local execution behavior of a service method.

public ref class OperationBehaviorAttribute sealed : Attribute, System::ServiceModel::Description::IOperationBehavior
[System.AttributeUsage(System.AttributeTargets.Method)]
public sealed class OperationBehaviorAttribute : Attribute, System.ServiceModel.Description.IOperationBehavior
type OperationBehaviorAttribute = class
    inherit Attribute
    interface IOperationBehavior
Public NotInheritable Class OperationBehaviorAttribute
Inherits Attribute
Implements IOperationBehavior
Vererbung
OperationBehaviorAttributeOperationBehaviorAttributeOperationBehaviorAttributeOperationBehaviorAttribute
Attribute
Implementiert

Beispiele

Im folgenden Codebeispiel wird ein Vorgang veranschaulicht, der innerhalb einer erforderlichen verteilten Transaktion ausgeführt wird.The following code example shows an operation that executes within a mandatory distributed transaction. Die TransactionScopeRequired-Eigenschaft gibt an, dass die Methode im Rahmen der Transaktion des Aufrufers ausgeführt wird. Die TransactionAutoComplete-Eigenschaft gibt an, dass die Transaktion automatisch ausgeführt wird, wenn keine nicht behandelten Ausnahmen auftreten.The TransactionScopeRequired property indicates that the method executes under the caller's transaction and the TransactionAutoComplete property indicates that if no unhandled exceptions occur, the transaction commits automatically. Wenn eine nicht behandelte Ausnahme auftritt, wird die Transaktion abgebrochen.If an unhandled exception does occur, the transaction is aborted.

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]
    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
    )]
    [TransactionFlow(TransactionFlowOption.Mandatory)]
    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."
      );
    }
  }
}
Imports System.ServiceModel
Imports System.Transactions

Namespace Microsoft.WCF.Documentation
  <ServiceContract(Namespace:="http://microsoft.wcf.documentation", SessionMode:=SessionMode.Required)> _
  Public Interface IBehaviorService
	<OperationContract> _
	Function TxWork(ByVal message As String) As String
  End Interface

    ' 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
        Implements IBehaviorService, IDisposable
        Private myID As Guid

        Public Sub New()
            myID = Guid.NewGuid()
            Console.WriteLine("Object " & myID.ToString() & " created.")
        End Sub

        '    
        '     * 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), _
        TransactionFlow(TransactionFlowOption.Mandatory)> _
        Public Function TxWork(ByVal message As String) As String Implements IBehaviorService.TxWork
            ' Do some transactable work.
            Console.WriteLine("TxWork called with: " & message)
            ' Display transaction information.

            Dim info As TransactionInformation = 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())
        End Function

        Public Sub Dispose() Implements IDisposable.Dispose
            Console.WriteLine("Service " & myID.ToString() & " is being recycled.")
        End Sub
    End Class
End Namespace

Hinweise

Verwenden Sie das OperationBehaviorAttribute-Attribut, um anzugeben, welches operationsspezifische Ausführungsverhalten wann ausgeführt worden ist.Use the OperationBehaviorAttribute attribute to indicate what operation-specific execution behavior the operation has when executed. (Um das Ausführungsverhalten auf Dienstebene anzugeben, verwenden Sie das ServiceBehaviorAttribute-Attribut.)(To specify execution behavior at the service level, use the ServiceBehaviorAttribute attribute.)

Hinweis

Sie können auch OperationBehaviorAttribute verwenden, um in einer Duplexclientanwendung einen Rückrufvertragsvorgang zu konfigurieren.You can also use OperationBehaviorAttribute to configure a callback contract operation in a duplex client application. Die ReleaseInstanceMode-Eigenschaft muss bei Verwendung im Rahmen eines Rückrufvorgangs auf None eingestellt sein. Andernfalls wird während der Laufzeit eine InvalidOperationException-Ausnahme ausgelöst.When used on a callback operation, the ReleaseInstanceMode property must be None or an InvalidOperationException exception is thrown at runtime.

Das OperationBehaviorAttribute -Attribut ist ein Windows Communication Foundation (WCF)-Programmiermodell Feature, das allgemeine Funktionen ermöglicht, die Entwickler andernfalls selbst implementieren müssen.The OperationBehaviorAttribute attribute is a Windows Communication Foundation (WCF) programming model feature that enables common features that developers otherwise must implement themselves.

  • Die AutoDisposeParameters-Eigenschaft steuert, ob an einen Vorgang übergebene Parameterobjekte verworfen werden, wenn der Vorgang abgeschlossen ist.The AutoDisposeParameters property controls whether parameter objects passed to an operation are disposed when the operation completes.

  • Die TransactionAutoComplete-Eigenschaft legt fest, ob die Transaktion, in der die Methode ausgeführt wird, automatisch ausgeführt wird, wenn keine nicht behandelten Ausnahmen ausgelöst werden.The TransactionAutoComplete property specifies whether the transaction in which the method executes is automatically committed if no unhandled exceptions occur.

  • Die TransactionScopeRequired-Eigenschaft gibt an, ob eine Methode innerhalb einer Transaktion ausgeführt werden muss.The TransactionScopeRequired property specifies whether a method must execute within a transaction.

  • Die Impersonation-Eigenschaft gibt an, ob der Dienstvorgang die Identität des Aufrufers annehmen kann, annehmen muss oder nicht annehmen kann.The Impersonation property specifies whether the service operation can, must, or cannot impersonate the caller's identity.

  • Die ReleaseInstanceMode-Eigenschaft gibt an, wann Dienstobjekte während des Methodenaufrufprozesses wiederverwendet werden.The ReleaseInstanceMode property specifies when service objects are recycled during the method invocation process.

Konstruktoren

OperationBehaviorAttribute() OperationBehaviorAttribute() OperationBehaviorAttribute() OperationBehaviorAttribute()

Initialisiert eine neue Instanz der OperationBehaviorAttribute-Klasse.Initializes a new instance of the OperationBehaviorAttribute class.

Eigenschaften

AutoDisposeParameters AutoDisposeParameters AutoDisposeParameters AutoDisposeParameters

Ruft einen Wert ab, der angibt, ob Parameter automatisch verworfen werden sollen, oder legt diesen fest.Gets or sets a value that indicates whether parameters are to be automatically disposed.

Impersonation Impersonation Impersonation Impersonation

Ruft einen Wert ab oder legt einen Wert fest, der die Ebene des Anruferidentitätswechsels angibt, die vom Vorgang unterstützt wird.Gets or sets a value that indicates the level of caller impersonation that the operation supports.

ReleaseInstanceMode ReleaseInstanceMode ReleaseInstanceMode ReleaseInstanceMode

Ruft einen Wert ab oder legt einen Wert fest, der angibt, wann das Dienstobjekt im Verlauf eines Vorgangsaufrufs wiederverwendet werden soll.Gets or sets a value that indicates when in the course of an operation invocation to recycle the service object.

TransactionAutoComplete TransactionAutoComplete TransactionAutoComplete TransactionAutoComplete

Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob der aktuelle Transaktionsbereich automatisch abgeschlossen werden soll, wenn keine unbehandelten Ausnahmen auftreten.Gets or sets a value that indicates whether to automatically complete the current transaction scope if no unhandled exceptions occur.

TransactionScopeRequired TransactionScopeRequired TransactionScopeRequired TransactionScopeRequired

Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob für die Ausführung der Methode ein Transaktionsbereich erforderlich ist.Gets or sets a value that indicates whether the method requires a transaction scope for its execution.

TypeId TypeId TypeId TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Explizite Schnittstellenimplementierungen

IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection) IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection) IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection) IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Implementiert die AddBindingParameters(OperationDescription, BindingParameterCollection)-Methode.Implements the AddBindingParameters(OperationDescription, BindingParameterCollection) method.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation) IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation) IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation) IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Implementiert das Vorgangsverhalten des Clients.Implements the client operation behavior.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation) IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation) IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation) IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Implementiert das Dienstvorgangsverhalten.Implements the service operation behavior.

IOperationBehavior.Validate(OperationDescription) IOperationBehavior.Validate(OperationDescription) IOperationBehavior.Validate(OperationDescription) IOperationBehavior.Validate(OperationDescription)

Implementiert das Validierungsverhalten.Implements the validation behavior.

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _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.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

Methoden

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Gibt den Hashcode für diese Instanz zurück.Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Gilt für: