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

OperationBehaviorAttribute-Klasse

 

Veröffentlicht: Oktober 2016

Gibt das lokale Ausführungsverhalten einer Dienstmethode an.

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

System.Object
  System.Attribute
    System.ServiceModel.OperationBehaviorAttribute

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

NameBeschreibung
System_CAPS_pubmethodOperationBehaviorAttribute()

Initialisiert eine neue Instanz der OperationBehaviorAttribute-Klasse.

NameBeschreibung
System_CAPS_pubpropertyAutoDisposeParameters

Ruft ab oder legt fest, ob Parameter automatisch verworfen werden sollen.

System_CAPS_pubpropertyImpersonation

Ruft einen Wert ab oder legt einen Wert fest, der die Ebene des Anruferidentitätswechsels angibt, die vom Vorgang unterstützt wird.

System_CAPS_pubpropertyReleaseInstanceMode

Ruft einen Wert ab oder legt einen Wert fest, der angibt, wann das Dienstobjekt im Verlauf eines Vorgangsaufrufs wiederverwendet werden soll.

System_CAPS_pubpropertyTransactionAutoComplete

Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob der aktuelle Transaktionsbereich automatisch abgeschlossen werden soll, wenn keine unbehandelten Ausnahmen auftreten.

System_CAPS_pubpropertyTransactionScopeRequired

Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob für die Ausführung der Methode ein Transaktionsbereich erforderlich ist.

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)

Implementiert die AddBindingParameters-Methode.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Implementiert das Vorgangsverhalten des Clients.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Implementiert das Dienstvorgangsverhalten.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIOperationBehavior.Validate(OperationDescription)

Implementiert das Validierungsverhalten.

Verwenden Sie das OperationBehaviorAttribute-Attribut, um anzugeben, welches operationsspezifische Ausführungsverhalten wann ausgeführt worden ist. (Um das Ausführungsverhalten auf Dienstebene anzugeben, verwenden Sie das ServiceBehaviorAttribute-Attribut.)

System_CAPS_noteHinweis

Sie können auch OperationBehaviorAttribute verwenden, um in einer Duplexclientanwendung einen Rückrufvertragsvorgang zu konfigurieren. 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.

Das OperationBehaviorAttribute-Attribut ist eine Windows Communication Foundation (WCF)-Funktion für Programmiermodelle, die gängige Funktionen aktiviert, die Entwickler ansonsten selbst installieren müssten.

  • Die AutoDisposeParameters-Eigenschaft steuert, ob an einen Vorgang übergebene Parameterobjekte verworfen werden, wenn der Vorgang abgeschlossen ist.

  • 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.

  • Die TransactionScopeRequired-Eigenschaft gibt an, ob eine Methode innerhalb einer Transaktion ausgeführt werden muss.

  • Die Impersonation-Eigenschaft gibt an, ob der Dienstvorgang die Identität des Aufrufers annehmen kann, annehmen muss oder nicht annehmen kann.

  • Die ReleaseInstanceMode-Eigenschaft gibt an, wann Dienstobjekte während des Methodenaufrufprozesses wiederverwendet werden.

Im folgenden Codebeispiel wird ein Vorgang veranschaulicht, der innerhalb einer erforderlichen verteilten Transaktion ausgeführt wird. 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. Wenn eine nicht behandelte Ausnahme auftritt, wird die Transaktion abgebrochen.

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

.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: