TransactionFlowAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa, czy operacja usługi akceptuje transakcje przychodzące od klienta.
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
- Dziedziczenie
- Atrybuty
- Implementuje
Przykłady
Poniższy przykład kodu przedstawia użycie tego wyliczenia wraz z klasą TransactionFlowOption na poziomie operacji.
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."
);
}
}
}
Uwagi
Jest TransactionFlowAttribute to atrybut używany deklaratywnie do skojarzenia określonych zasad przepływu transakcji z operacją usługi. Właściwość TransactionFlowOption tego atrybutu określa, czy odpowiednia operacja akceptuje transakcję przepływaną z klienta, czy operacja wymaga, aby klient zawsze przepływał transakcję. Może TransactionFlowAttribute być również używany jako zachowanie operacji w celu programowego skojarzenia zasad przepływu transakcji z określoną operacją. W takim przypadku należy dodać ją do Behaviors
kolekcji w opisie operacji.
Uwaga
Dla OperationContract
każdej metody, która używa metody TransactionFlowAttribute , musi podać w pełni kwalifikowany Action
ciąg. Wartość "*" nie jest obsługiwana.
Konstruktory
TransactionFlowAttribute(TransactionFlowOption) |
Inicjuje nowe wystąpienie klasy TransactionFlowAttribute. |
Właściwości
Transactions |
Pobiera wartość wskazującą, czy transakcja przychodząca jest obsługiwana. |
TypeId |
Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu . (Odziedziczone po Attribute) |
Metody
Equals(Object) |
Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi. (Odziedziczone po Attribute) |
GetHashCode() |
Zwraca wartość skrótu dla tego wystąpienia. (Odziedziczone po Attribute) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
IsDefaultAttribute() |
W przypadku zastąpienia w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej. (Odziedziczone po Attribute) |
Match(Object) |
Po przesłonięciu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi. (Odziedziczone po Attribute) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone po Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu. (Odziedziczone po Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone po Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone po Attribute) |
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection) |
Dodaje dodatkowe parametry (ustawienia) do kontekstu powiązania w celu obsługi zachowania tej operacji. Nie można dziedziczyć tej metody. |
IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation) |
Dołącza funkcję atrybutu do |
IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation) |
Dołącza funkcję atrybutu do DispatchOperation obiektu dla metody oznaczanej przez atrybut. Nie można dziedziczyć tej metody. |
IOperationBehavior.Validate(OperationDescription) |
Sprawdza, czy operacja może obsługiwać to zachowanie. Nie można dziedziczyć tej metody. |