Transaction (Clase)
Una transacción se asegura de que los cambios realizados en el almacén se tratarán como una grupo que pueda confirmarse o revertirse.
Jerarquía de herencia
System.Object
System.MarshalByRefObject
Microsoft.VisualStudio.Modeling.Transaction
Espacio de nombres: Microsoft.VisualStudio.Modeling
Ensamblado: Microsoft.VisualStudio.Modeling.Sdk.12.0 (en Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)
Sintaxis
'Declaración
Public Class Transaction _
Inherits MarshalByRefObject _
Implements IDisposable
public class Transaction : MarshalByRefObject,
IDisposable
El tipo Transaction expone los siguientes miembros.
Propiedades
Nombre | Descripción | |
---|---|---|
Context | Obtiene la transacción y permite a los clientes anexar datos de usuario a la transacción. | |
ContextInstance | Obtiene el Context para esta transacción. | |
ForceAllRulesToCommitTime | Obtiene o establece una marca que exige que todas las reglas anidadas se produzcan en tiempo de LocalCommit para la transacción actual. | |
HasPendingChanges | Obtiene la transacción y comprueba si se han realizado cambios al almacén durante esta transacción. | |
HaveCommitTimeRulesFired | Indica si se han desencadenado o no las reglas de tiempo de confirmación | |
Id | Obtiene el identificador para esta transacción. | |
InRollback | Obtiene la transacción y comprueba si esta transacción se está revirtiendo. | |
IsActive | Obtiene la transacción y comprueba si esta transacción se está procesando. | |
IsHidden | Obtiene la transacción y comprueba si está oculta. | |
IsNested | Obtiene la transacción y comprueba si está anidada dentro de otra. | |
IsSerializing | Obtiene la transacción y comprueba si se está serializando actualmente. | |
Name | Obtiene o establece el nombre de la transacción. | |
Parent | Obtiene la transacción de nivel superior que se asigna a la transacción anidada. | |
PartitionStates | Obtiene información sobre el estado de todas las particiones del almacén. | |
SequenceNumber | Obtiene el número de secuencia de la transacción. | |
Store | Obtiene el almacén al que pertenece la transacción. | |
TopLevelTransaction | Obtiene la transacción de nivel superior de la jerarquía de transacciones. | |
TransactionDepth | Obtiene el número de transacciones en las que está anidada esta transacción. |
Arriba
Métodos
Nombre | Descripción | |
---|---|---|
Commit | Confirma la transacción. | |
CreateObjRef | Crítico para la seguridad. Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto. (Se hereda de MarshalByRefObject). | |
Dispose | Desecha el estado de la transacción. | |
Equals | Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object). | |
Finalize | Finaliza la transacción. (Invalida a Object.Finalize()). | |
GetHashCode | Sirve como la función hash predeterminada. (Se hereda de Object). | |
GetLifetimeService | Crítico para la seguridad. Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia. (Se hereda de MarshalByRefObject). | |
GetType | Obtiene el objeto Type de la instancia actual. (Se hereda de Object). | |
InitializeLifetimeService | Crítico para la seguridad. Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia. (Se hereda de MarshalByRefObject). | |
MemberwiseClone() | Crea una copia superficial del objeto Object actual. (Se hereda de Object). | |
MemberwiseClone(Boolean) | Crea una copia superficial del objeto MarshalByRefObject actual. (Se hereda de MarshalByRefObject). | |
Rollback | El almacén que se volverá a establecer en el estado que tenía cuando se creó la transacción. | |
ToString | Devuelve una cadena que representa el objeto actual. (Se hereda de Object). |
Arriba
Métodos de extensión
Nombre | Descripción | |
---|---|---|
GetSerializationContext | Obtiene el activo de SerializationContext en el contexto de la transacción especificada.SerializationContext se almacena en el TransactionContext de transacciones de serialización.Si se anida la transacción se busca en la pila de la transacción para encontrar la transacción de serialización envolvente más cercana con un SerializationContext. (Definido por SerializationContextTransactionExtensions). |
Arriba
Comentarios
Una transacción permite agrupar cambios. Tampoco seguimiento de las acciones que se realizan en una transacción para poder deshacer ulteriormente.
Los cambios en el almacén se deben realizar en una transacción. Los cambios en el almacén se realizan si se compromete de la transacción. Una transacción puede hacer que el almacén acepta los cambios cuando la transacción local se confirma o cuando la transacción de nivel superior es de confianza. Las transacciones locales están anidados en una transacción de nivel superior. Una transacción anidada debe confirmar o revertir antes de la transacción de nivel superior siguiente puede confirmar o revertir. Para obtener más información, vea el ejemplo para la propiedad TransactionDepth .
Una transacción también realiza el seguimiento de las acciones que se han producido. Esto habilita un grupo de acciones para ser deshacer ni para ser rehecho ulteriormente con la propiedad UndoManager .
Una transacción debe ser elimine. Esto se puede realizar mediante el método Dispose o creando la transacción en una construcción Using . Si la transacción no ha estado confirma cuando se elimina, la transacción se vuelve automáticamente revertirse y cualquier cambio se cancela.
Ejemplos
El ejemplo siguiente muestra una transacción que modifique el almacén. La transacción es de confianza. Si ésta se revierte, cualquier cambio en el almacén está cancelado. La transacción se elimina automáticamente al final del bloque using .
using (Transaction txCreateElem = model.Store.TransactionManager.BeginTransaction("Create named element")
{
A a = new A(store);
a.Name = "Fred";
// Commit the transaction and add the named element to the model
txCreateElem.Commit();
}
Para obtener ejemplos y obtener más información, vea Using Transactions.
Seguridad para subprocesos
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.