(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

OperationBehaviorAttribute-Klasse

Gibt das lokale Ausführungsverhalten einer Dienstmethode an.

System.Object
  System.Attribute
    System.ServiceModel.OperationBehaviorAttribute

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

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

Der OperationBehaviorAttribute-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeOperationBehaviorAttributeInitialisiert eine neue Instanz der OperationBehaviorAttribute-Klasse.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftAutoDisposeParametersRuft ab oder legt fest, ob Parameter automatisch verworfen werden sollen.
Öffentliche EigenschaftImpersonationRuft einen Wert ab oder legt einen Wert fest, der die Ebene des Anruferidentitätswechsels angibt, die vom Vorgang unterstützt wird.
Öffentliche EigenschaftReleaseInstanceModeRuft einen Wert ab oder legt einen Wert fest, der angibt, wann das Dienstobjekt im Verlauf eines Vorgangsaufrufs wiederverwendet werden soll.
Öffentliche EigenschaftTransactionAutoCompleteRuft einen Wert ab oder legt einen Wert fest, der angibt, ob der aktuelle Transaktionsbereich automatisch abgeschlossen werden soll, wenn keine unbehandelten Ausnahmen auftreten.
Öffentliche EigenschaftTransactionScopeRequiredRuft einen Wert ab oder legt einen Wert fest, der angibt, ob für die Ausführung der Methode ein Transaktionsbereich erforderlich ist.
Öffentliche EigenschaftTypeIdBei Implementierung in einer abgeleiteten Klasse wird ein eindeutiger Bezeichner für dieses Attribute abgerufen. (Von Attribute geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeEqualsInfrastruktur. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist. (Von Attribute geerbt.)
Öffentliche MethodeGetHashCodeGibt den Hashcode für diese Instanz zurück. (Von Attribute geerbt.)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeIsDefaultAttributeBeim Überschreiben in einer abgeleiteten Klasse wird angegeben, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist. (Von Attribute geerbt.)
Öffentliche MethodeMatchBeim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht. (Von Attribute geerbt.)
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetIDsOfNamesOrdnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoRuft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoCountRuft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.InvokeStellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate MethodeIOperationBehavior.AddBindingParametersImplementiert die AddBindingParameters-Methode.
Explizite SchnittstellenimplementierungPrivate MethodeIOperationBehavior.ApplyClientBehaviorImplementiert das Vorgangsverhalten des Clients.
Explizite SchnittstellenimplementierungPrivate MethodeIOperationBehavior.ApplyDispatchBehaviorImplementiert das Dienstvorgangsverhalten.
Explizite SchnittstellenimplementierungPrivate MethodeIOperationBehavior.ValidateImplementiert das Validierungsverhalten.
Zum Seitenanfang

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

HinweisHinweis

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

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft