TransactionFlowAttribute Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Spécifie si une opération de service accepte les transactions entrantes d’un client.
public ref class TransactionFlowAttribute sealed : Attribute, System::ServiceModel::Description::IOperationBehavior
[System.AttributeUsage(System.AttributeTargets.Method)]
public sealed class TransactionFlowAttribute : Attribute, System.ServiceModel.Description.IOperationBehavior
[<System.AttributeUsage(System.AttributeTargets.Method)>]
type TransactionFlowAttribute = class
inherit Attribute
interface IOperationBehavior
Public NotInheritable Class TransactionFlowAttribute
Inherits Attribute
Implements IOperationBehavior
- Héritage
- Attributs
- Implémente
Exemples
L’exemple de code suivant montre l’utilisation de cette énumération avec la classe au niveau de l’opération TransactionFlowOption .
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."
);
}
}
}
Remarques
Il TransactionFlowAttribute s’agit d’un attribut utilisé de manière déclarative pour associer une stratégie de flux de transactions spécifique à une opération de service. La TransactionFlowOption propriété de cet attribut spécifie si l’opération respective accepte un flux de transaction du client ou si l’opération exige que le client effectue toujours un flux de transaction. Il TransactionFlowAttribute peut également être utilisé comme comportement d’opération pour associer par programmation une stratégie de flux de transactions à une opération spécifique. Dans ce cas, elle doit être ajoutée à la Behaviors collection sur la description de l’opération.
Note
Pour OperationContract chaque méthode qui utilise le TransactionFlowAttribute fichier doit fournir une chaîne complète Action . La valeur « * » n’est pas prise en charge.
Constructeurs
| Nom | Description |
|---|---|
| TransactionFlowAttribute(TransactionFlowOption) |
Initialise une nouvelle instance de la classe TransactionFlowAttribute. |
Propriétés
| Nom | Description |
|---|---|
| Transactions |
Obtient une valeur qui indique si la transaction entrante est prise en charge. |
| TypeId |
En cas d’implémentation dans une classe dérivée, obtient un identificateur unique pour cette Attribute. (Hérité de Attribute) |
Méthodes
| Nom | Description |
|---|---|
| Equals(Object) |
Retourne une valeur qui indique si cette instance est égale à un objet spécifié. (Hérité de Attribute) |
| GetHashCode() |
Retourne le code de hachage pour cette instance. (Hérité de Attribute) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| IsDefaultAttribute() |
En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut de la classe dérivée. (Hérité de Attribute) |
| Match(Object) |
En cas de substitution dans une classe dérivée, retourne une valeur qui indique si cette instance est égale à un objet spécifié. (Hérité de Attribute) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Récupère les informations de type d’un objet, qui peuvent être utilisées pour obtenir les informations de type d’une interface. (Hérité de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fournit l’accès aux propriétés et méthodes exposées par un objet. (Hérité de Attribute) |
| IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection) |
Ajoute des paramètres supplémentaires (paramètres) au contexte de liaison pour prendre en charge le comportement de cette opération. Cette méthode ne peut pas être héritée. |
| IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation) |
Attache la fonctionnalité d’attribut à l’objet |
| IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation) |
Attache la fonctionnalité d’attribut à l’objet DispatchOperation pour la méthode que l’attribut marque. Cette méthode ne peut pas être héritée. |
| IOperationBehavior.Validate(OperationDescription) |
Vérifie que l’opération peut prendre en charge ce comportement. Cette méthode ne peut pas être héritée. |