OperationBehaviorAttribute Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee geeft u het gedrag van de lokale uitvoering van een servicemethode.
public ref class OperationBehaviorAttribute sealed : Attribute, System::ServiceModel::Description::IOperationBehavior
[System.AttributeUsage(System.AttributeTargets.Method)]
public sealed class OperationBehaviorAttribute : Attribute, System.ServiceModel.Description.IOperationBehavior
[<System.AttributeUsage(System.AttributeTargets.Method)>]
type OperationBehaviorAttribute = class
inherit Attribute
interface IOperationBehavior
Public NotInheritable Class OperationBehaviorAttribute
Inherits Attribute
Implements IOperationBehavior
- Overname
- Kenmerken
- Implementeringen
Voorbeelden
In het volgende codevoorbeeld ziet u een bewerking die wordt uitgevoerd binnen een verplichte gedistribueerde transactie. De TransactionScopeRequired eigenschap geeft aan dat de methode wordt uitgevoerd onder de transactie van de aanroeper en de TransactionAutoComplete eigenschap aangeeft dat als er geen niet-verwerkte uitzonderingen optreden, de transactiedoorvoering automatisch wordt doorgevoerd. Als er een niet-verwerkte uitzondering optreedt, wordt de transactie afgebroken.
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
Opmerkingen
Gebruik het OperationBehaviorAttribute kenmerk om aan te geven welk bewerkingsspecifieke uitvoeringsgedrag de bewerking heeft wanneer deze wordt uitgevoerd. (Als u uitvoeringsgedrag op serviceniveau wilt opgeven, gebruikt u het ServiceBehaviorAttribute kenmerk.)
Note
U kunt ook OperationBehaviorAttribute een callbackcontractbewerking configureren in een duplex-clienttoepassing. Wanneer deze wordt gebruikt voor een callback-bewerking, moet de ReleaseInstanceMode eigenschap zijn None of wordt er tijdens runtime een InvalidOperationException uitzondering gegenereerd.
Het kenmerk OperationBehaviorAttribute is een wcf-programmeermodelfunctie (Windows Communication Foundation) die algemene functies mogelijk maakt die ontwikkelaars anders zelf moeten implementeren.
De AutoDisposeParameters eigenschap bepaalt of parameterobjecten die aan een bewerking worden doorgegeven, worden verwijderd wanneer de bewerking is voltooid.
De TransactionAutoComplete eigenschap geeft aan of de transactie waarin de methode wordt uitgevoerd automatisch wordt doorgevoerd als er geen onverwerkte uitzonderingen optreden.
De TransactionScopeRequired eigenschap geeft aan of een methode moet worden uitgevoerd binnen een transactie.
De Impersonation eigenschap geeft aan of de servicebewerking de identiteit van de beller wel of niet kan imiteren.
De ReleaseInstanceMode eigenschap geeft aan wanneer serviceobjecten worden gerecycled tijdens het aanroepproces van de methode.
Constructors
| Name | Description |
|---|---|
| OperationBehaviorAttribute() |
Initialiseert een nieuw exemplaar van de OperationBehaviorAttribute klasse. |
Eigenschappen
| Name | Description |
|---|---|
| AutoDisposeParameters |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of parameters automatisch moeten worden verwijderd. |
| Impersonation |
Hiermee wordt een waarde opgehaald of ingesteld die het niveau aangeeft van de aanroeper-imitatie die door de bewerking wordt ondersteund. |
| ReleaseInstanceMode |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft wanneer in de loop van een bewerking het serviceobject wordt aangeroepen. |
| TransactionAutoComplete |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het huidige transactiebereik automatisch moet worden voltooid als er geen onverwerkte uitzonderingen optreden. |
| TransactionScopeRequired |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of voor de methode een transactiebereik is vereist voor de uitvoering ervan. |
| TypeId |
Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id. (Overgenomen van Attribute) |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object. (Overgenomen van Attribute) |
| GetHashCode() |
Retourneert de hash-code voor dit exemplaar. (Overgenomen van Attribute) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| IsDefaultAttribute() |
Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse. (Overgenomen van Attribute) |
| Match(Object) |
Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object. (Overgenomen van Attribute) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's. (Overgenomen van Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen. (Overgenomen van Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1). (Overgenomen van Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven. (Overgenomen van Attribute) |
| IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection) |
Implementeert de AddBindingParameters(OperationDescription, BindingParameterCollection) methode. |
| IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation) |
Implementeert het gedrag van de clientbewerking. |
| IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation) |
Implementeert het gedrag van de servicebewerking. |
| IOperationBehavior.Validate(OperationDescription) |
Implementeert het validatiegedrag. |