Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase OperationBehaviorAttribute

 

Publicado: octubre de 2016

Especifica el comportamiento de ejecución local de un método de servicio.

Espacio de nombres:   System.ServiceModel
Ensamblado:  System.ServiceModel (en System.ServiceModel.dll)

System.Object
  System.Attribute
    System.ServiceModel.OperationBehaviorAttribute

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

NombreDescripción
System_CAPS_pubmethodOperationBehaviorAttribute()

Inicializa una nueva instancia de la clase OperationBehaviorAttribute.

NombreDescripción
System_CAPS_pubpropertyAutoDisposeParameters

Obtiene o establece si los parámetros se van a eliminar automáticamente.

System_CAPS_pubpropertyImpersonation

Obtiene o establece un valor que indica el nivel de suplantación del autor de la llamada que admite la operación.

System_CAPS_pubpropertyReleaseInstanceMode

Obtiene o establece un valor que indica en qué momento del curso de una invocación de la operación se recicla el objeto de servicio.

System_CAPS_pubpropertyTransactionAutoComplete

Obtiene o establece un valor que indica si completar automáticamente el ámbito de la transacción actual si no se produce ninguna excepción no controlada.

System_CAPS_pubpropertyTransactionScopeRequired

Obtiene o establece un valor que indica si el método requiere un ámbito de la transacción para su ejecución.

System_CAPS_pubpropertyTypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.(Heredado de Attribute).

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Devuelve un valor que indica si esta instancia equivale al objeto especificado. (Heredado de Attribute).

System_CAPS_pubmethodGetHashCode()

Devuelve el código hash de esta instancia.(Heredado de Attribute).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodIsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.(Heredado de Attribute).

System_CAPS_pubmethodMatch(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Heredado de Attribute).

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.(Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información del tipo de un objeto, que puede utilizarse para obtener la información del tipo de una interfaz. (Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

(Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.(Heredado de Attribute).

System_CAPS_pubinterfaceSystem_CAPS_privmethodIOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Implementa el método AddBindingParameters.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Implementa el comportamiento de la operación del lado del cliente.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Implementa el comportamiento de la operación del lado del servicio.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIOperationBehavior.Validate(OperationDescription)

Implementa el comportamiento de validación.

Utilice el atributo OperationBehaviorAttribute para indicar qué comportamiento de ejecución específico de la operación tiene la operación cuando se ejecuta. (Para especificar el comportamiento de ejecución en el nivel de servicio, utilice el atributo ServiceBehaviorAttribute.)

System_CAPS_noteNota

También puede utilizar OperationBehaviorAttribute para configurar una operación del contrato de devolución de llamada en una aplicación de cliente dúplex. Cuando se utiliza en una operación de devolución de llamada, la propiedad ReleaseInstanceMode debe ser None o se produce una excepción InvalidOperationException en tiempo de ejecución.

El atributo OperationBehaviorAttribute es una característica de modelo de programación Windows Communication Foundation (WCF) que habilita características comunes que, de otro modo, los programadores deben implementar.

  • La propiedad AutoDisposeParameters controla si los objetos de parámetro pasados a una operación se eliminan cuando se completa la operación.

  • La propiedad TransactionAutoComplete especifica si se confirma automáticamente la transacción en la que se ejecuta el método si no se producen excepciones no controladas.

  • La propiedad TransactionScopeRequired especifica si un método debe ejecutarse dentro de una transacción.

  • La propiedad Impersonation especifica si la operación del servicio puede, debe o no puede suplantar la identidad del autor de la llamada.

  • La propiedad ReleaseInstanceMode especifica cuándo se reciclan los objetos de servicio durante el proceso de la invocación de método.

El ejemplo de código siguiente muestra una operación que se ejecuta dentro de una transacción distribuida obligatoria. La propiedad TransactionScopeRequired indica que el método se ejecuta bajo la transacción del autor de la llamada, y la propiedad TransactionAutoComplete indica que, si no se produce ninguna excepción no controlada, la transacción se confirma automáticamente. Si se produce una excepción no controlada, se anula la transacción.

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
Disponible desde 3.0

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: