OperationBehaviorAttribute Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy szolgáltatásmetódus helyi végrehajtási viselkedését adja meg.
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
- Öröklődés
- Attribútumok
- Megvalósítás
Példák
Az alábbi példakód egy kötelező elosztott tranzakción belül végrehajtott műveletet mutat be. A TransactionScopeRequired tulajdonság azt jelzi, hogy a metódus a hívó tranzakciója alatt fut, a TransactionAutoComplete tulajdonság pedig azt jelzi, hogy ha nincs kezeletlen kivétel, a tranzakció automatikusan véglegesíti. Ha nem kezelt kivétel történik, a tranzakció megszakad.
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
Megjegyzések
OperationBehaviorAttribute Az attribútum használatával jelezheti, hogy a művelet milyen műveletspecifikus végrehajtási viselkedést mutat a végrehajtáskor. (A végrehajtási viselkedés szolgáltatásszinten való megadásához használja az ServiceBehaviorAttribute attribútumot.)
Note
A visszahívási szerződés műveletét kétoldalas ügyfélalkalmazásban is OperationBehaviorAttribute konfigurálhatja. Visszahívási művelet esetén a ReleaseInstanceMode tulajdonságnak kell lennie None , vagy InvalidOperationException futásidőben kivételt kell eredményeznie.
A OperationBehaviorAttribute attribútum egy Windows kommunikációs alaprendszer (WCF) programozási modell funkció, amely lehetővé teszi azokat a gyakori funkciókat, amelyeket egyébként a fejlesztőknek maguknak kell implementálniuk.
A AutoDisposeParameters tulajdonság azt szabályozza, hogy a művelet végrehajtásakor a paraméterobjektumok törlődjenek-e.
A TransactionAutoComplete tulajdonság azt határozza meg, hogy a metódust végrehajtó tranzakció automatikusan le legyen-e véglegesítva, ha nem kezeletlen kivételek nem fordulnak elő.
A TransactionScopeRequired tulajdonság azt határozza meg, hogy egy metódusnak végre kell-e hajtania egy tranzakción belül.
A Impersonation tulajdonság azt határozza meg, hogy a szolgáltatásművelet képes-e vagy sem a hívó identitásának megszemélyesítésére.
A ReleaseInstanceMode tulajdonság azt határozza meg, hogy a metódushívási folyamat során mikor történik újra a szolgáltatásobjektumok újrahasznosítása.
Konstruktorok
| Name | Description |
|---|---|
| OperationBehaviorAttribute() |
Inicializálja a OperationBehaviorAttribute osztály új példányát. |
Tulajdonságok
| Name | Description |
|---|---|
| AutoDisposeParameters |
Lekéri vagy beállít egy értéket, amely jelzi, hogy a paramétereket automatikusan el kell-e adni. |
| Impersonation |
Lekéri vagy beállít egy értéket, amely jelzi a hívó megszemélyesítésének szintjét, amelyet a művelet támogat. |
| ReleaseInstanceMode |
Lekéri vagy beállítja azt az értéket, amely azt jelzi, hogy egy művelethívás során a szolgáltatásobjektum újrahasznosítása mikor történik. |
| TransactionAutoComplete |
Lekéri vagy beállít egy értéket, amely jelzi, hogy automatikusan befejezze-e az aktuális tranzakció hatókörét, ha nincsenek kezeletlen kivételek. |
| TransactionScopeRequired |
Lekéri vagy beállít egy értéket, amely jelzi, hogy a metódushoz tranzakciós hatókör szükséges-e a végrehajtásához. |
| TypeId |
Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap. (Öröklődés forrása Attribute) |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Olyan értéket ad vissza, amely jelzi, hogy ez a példány egyenlő-e egy adott objektummal. (Öröklődés forrása Attribute) |
| GetHashCode() |
A példány kivonatkódját adja vissza. (Öröklődés forrása Attribute) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| IsDefaultAttribute() |
Ha egy származtatott osztályban felül van bírálva, azt jelzi, hogy a példány értéke-e a származtatott osztály alapértelmezett értéke. (Öröklődés forrása Attribute) |
| Match(Object) |
Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e. (Öröklődés forrása Attribute) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |