Compartir a través de


TransactedReceiveScope Clase

Definición

Actividad que establece el ámbito de duración de una transacción que se inicia mediante un mensaje recibido. La transacción puede fluir en el flujo de trabajo del mensaje de inicio o la puede crear el distribuidor cuando se recibe el mensaje.

public ref class TransactedReceiveScope sealed : System::Activities::NativeActivity
[System.Windows.Markup.ContentProperty("Body")]
public sealed class TransactedReceiveScope : System.Activities.NativeActivity
[<System.Windows.Markup.ContentProperty("Body")>]
type TransactedReceiveScope = class
    inherit NativeActivity
Public NotInheritable Class TransactedReceiveScope
Inherits NativeActivity
Herencia
TransactedReceiveScope
Atributos

Ejemplos

En el siguiente ejemplo se muestra cómo usar la clase TransactedReceiveScope en una actividad Sequence.

return new Sequence
{
    Activities = 
    {
        new WriteLine { Text = "Service workflow begins." },

        new System.ServiceModel.Activities.TransactedReceiveScope
        {
            Variables = { requestMessage, replyMessage },
            Request = receive,
            Body = new Sequence
            {
                Activities =
                {
                    new WriteLine { Text = new InArgument<string>("Server side: Receive complete.") },
                    
                    new WriteLine { Text = new InArgument<string>(new VisualBasicValue<string>() { ExpressionText = "\"Server side: Received = '\" + requestString.toString() + \"'\"" }) },

                    new PrintTransactionInfo(),

                    new Assign<string>
                    {
                        Value = new InArgument<string>("Server side: Sending reply."),
                        To = new OutArgument<string>(replyMessage)
                    },

                    new WriteLine { Text = new InArgument<string>("Server side: Begin reply.") },

                    new SendReply
                    {
                        Request = receive,
                        Content = SendContent.Create(new InArgument<string>(replyMessage)),                                    
                    },

                    new WriteLine { Text = new InArgument<string>("Server side: Reply sent.") },
                },
            },
        },

        new WriteLine { Text = "Server workflow ends." },
    },
};

Comentarios

La actividad TransactedReceiveScope permite controlar la duración de la transacción fluida.

Advertencia

Para una actividad de inicio TransactedReceiveScope (que TransactedReceiveScope contiene una Receive actividad con CanCreateInstance establecida trueen ), la transacción se crea antes de que el tiempo de ejecución empiece a ejecutar la TransactedReceiveScope actividad. Esta transacción no es ambiente en el nivel de actividad de flujo de trabajo, pero sí lo es en los niveles de persistencia subyacentes. Si la ejecución del runtime encuentra una actividad Persist antes de la actividad TransactedReceiveScope, el runtime intenta que sea persistente en la transacción ambiente. Este comportamiento provoca un bloqueo hasta que se completa la transacción. Debido a que la ejecución de flujo de trabajo no ha llegado a la sección Body, no se puede finalizar la transacción. Este interbloqueo hace que el flujo de trabajo deje de responder hasta que se agote el tiempo de espera de la transacción. Cuando se agota el tiempo de espera de la transacción, se anula la instancia recién creada.

Importante

Siempre que use un objeto TransactedReceiveScope se recomienda que coloque todas las recepciones en el flujo de trabajo dentro de actividades TransactedReceiveScope.

Importante

Cuando se usa el objeto TransactedReceiveScope y los mensajes llegan en el orden incorrecto, el flujo de trabajo se anulará al intentar entregar el primer mensaje que lo indique. Debe asegurarse de que el flujo de trabajo siempre está en un punto de detención coherente cuando el flujo de trabajo está inactivo. De este modo, podrá reiniciar el flujo de trabajo a partir de un punto de persistencia anterior si el flujo de trabajo se anula.

Constructores

TransactedReceiveScope()

Inicializa una nueva instancia de la clase TransactedReceiveScope.

Propiedades

Body

Obtiene o establece el objeto Activity que constituye el cuerpo de la actividad TransactedReceiveScope.

CacheId

Obtiene el identificador de la memoria caché que es único dentro del ámbito de definición del flujo de trabajo.

(Heredado de Activity)
CanInduceIdle

Obtiene o establece un valor que indica si la actividad puede hacer que el flujo de trabajo quede inactivo.

(Heredado de NativeActivity)
Constraints

Obtiene una colección de las actividades Constraint que se puede configurar para proporcionar validación para Activity.

(Heredado de Activity)
DisplayName

Obtiene o establece un nombre descriptivo opcional que se utiliza para la depuración, la validación, el control de excepciones y el seguimiento.

(Heredado de Activity)
Id

Obtiene un identificador que es único dentro del ámbito de definición del flujo de trabajo.

(Heredado de Activity)
Implementation

Lógica de ejecución de la actividad.

(Heredado de NativeActivity)
ImplementationVersion

Obtiene o establece la versión de implementación de la actividad.

(Heredado de NativeActivity)
Request

Obtiene o establece la actividad Receive asociada a esta actividad TransactedReceiveScope.

Variables

Obtiene la colección de objetos Variable asociada a este TransactedReceiveScope.

Métodos

Abort(NativeActivityAbortContext)

Cuando se implementa en una clase derivada, realiza acciones en respuesta a la actividad que se va a anular.

(Heredado de NativeActivity)
CacheMetadata(ActivityMetadata)

Sin implementar. Use el método CacheMetadata(NativeActivityMetadata) en su lugar.

(Heredado de NativeActivity)
CacheMetadata(NativeActivityMetadata)

Crea y valida una descripción de los argumentos, las variables, las actividades secundarias y delegados de la actividad.

(Heredado de NativeActivity)
Cancel(NativeActivityContext)

Cuando se implementa en una clase derivada, ejecuta la lógica para producir una finalización precoz y correcta de la actividad.

(Heredado de NativeActivity)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
Execute(NativeActivityContext)

Cuando se implementa en una clase derivada, ejecuta la lógica de ejecución de la actividad.

(Heredado de NativeActivity)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

Genera un evento al crear una asignación para la actualización dinámica.

(Heredado de NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Genera un evento al crear una asignación para la actualización dinámica.

(Heredado de NativeActivity)
ShouldSerializeDisplayName()

Indica si la propiedad DisplayName se debe serializar.

(Heredado de Activity)
ToString()

Devuelve un objeto String que contiene las propiedades Id y DisplayName del objeto Activity.

(Heredado de Activity)
UpdateInstance(NativeActivityUpdateContext)

Actualiza la instancia de NativeActivity.

(Heredado de NativeActivity)

Se aplica a