Compartir a través de


Store (Clase)

El almacén contiene una representación en memoria de los elementos y los vínculos en uno o más modelos.

Jerarquía de herencia

System.Object
  Microsoft.VisualStudio.Modeling.Store

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 Store _
    Implements IServiceProvider, IDisposable
public class Store : IServiceProvider, IDisposable

El tipo Store expone los siguientes miembros.

Constructores

  Nombre Descripción
Método público Store(array<Type[]) Inicializa una nueva instancia de la clase Store.
Método público Store(IServiceProvider, array<Type[]) Inicializa una nueva instancia de la clase Store.
Método público Store(IServiceProvider, Dictionary<Object, Object>, array<Type[]) Crea una instancia de la clase Store que delega la implementación de IServiceProvider en el objeto serviceProvider especificado.

Arriba

Propiedades

  Nombre Descripción
Propiedad pública ChangeSource Obtiene el origen actual de cambio para las operaciones en el almacén.
Propiedad pública CurrentContext Obtiene el contexto actual para el almacén.
Propiedad pública DefaultPartition Obtiene o establece la partición predeterminada para el almacén.
Propiedad pública DemandLoading Obtiene si el almacén está demandando actualmente que se cargue una relación.
Propiedad pública Disposed Obtiene si se ha desechado el almacén.
Propiedad pública DomainDataDirectory Obtiene el directorio de información de dominio del almacén.
Propiedad pública DomainModels Obtiene una colección de modelos de dominio en este almacén.
Propiedad pública ElementDirectory Obtiene el directorio de los elementos contenidos dentro del almacén.
Propiedad pública ElementFactory Obtiene el generador de elementos del modelo.
Propiedad pública EventManagerDirectory Obtiene el directorio del administrador de eventos del modelo.
Propiedad pública Id Obtiene el identificador del almacén.
Propiedad pública InRedo Obtiene el almacén y comprueba si el contexto actual del almacén está en fase de puesta al día.
Propiedad pública InSerializationTransaction Indica que el almacén tiene actualmente una transacción de serialización activa en la pila de transacciones
Propiedad pública InUndo Obtiene el almacén y comprueba si el contexto actual del almacén está en fase de reversión.
Propiedad pública InUndoRedoOrRollback Obtiene el almacén y comprueba si el contexto actual del almacén está en fase de puesta al día o de reversión o se está revirtiendo.
Propiedad pública Partitions Obtiene la colección de objetos Partition del almacén.
Propiedad pública PartitionsAlternate Obtiene las particiones usadas en el almacén.
Propiedad pública PropertyBag Obtiene el contenedor de propiedades del almacén.
Propiedad pública RuleManager Obtiene el administrador de reglas para el almacén.
Propiedad pública SerializerDirectory Directorio de serialización predeterminado para este almacén.
Propiedad pública ShuttingDown Obtiene el almacén y comprueba si se está cerrando, o establece el estado del almacén como cerrado.
Propiedad pública TransactionActive Obtiene o establece si el almacén tiene actualmente una transacción activa.
Propiedad pública TransactionLogs Obtiene la lista actual de los registros de transacciones del almacén.
Propiedad pública TransactionManager Obtiene el administrador de transacciones para el modelo.
Propiedad pública UndoManager Obtiene el UndoManager para el contexto predeterminado.
Propiedad pública Version Obtiene la versión del almacén.

Arriba

Métodos

  Nombre Descripción
Método público AddMonikerResolver Registre un IMonikerResolver para el modelo de dominio especificado.
Método público DefaultPartitionForClass Devuelve la partición en la que deben crearse los nuevos elementos de la clase especificada de forma predeterminada.
Método público Dispose Desecha el almacén.
Método público Equals Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público FindDomainModel Busca un modelo de dominio por su identificador.
Método público FindMonikerResolver Busca el IMonikerResolver registrado para el modelo de dominio especificado.
Método público GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType) Crea un prototipo de grupo de elementos en la partición predeterminada del tipo de cierre indicado si se especifica una lista de elementos raíz.
Método público GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType, Boolean) Crea un prototipo de grupo de elementos en la partición predeterminada del tipo de cierre indicado cuando se especifica una lista de elementos raíz, y permite omitir la carga de petición.
Método público GetDomainModel(Guid) Obtiene una instancia de un modelo de dominio por su identificador.
Método público GetDomainModel<T>() Obtiene una instancia de un tipo de modelo de dominio especificado.
Método público GetHashCode Sirve como la función hash predeterminada. (Se hereda de Object).
Método público GetService Obtiene un servicio.
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método público LoadDomainModels Crea todos los datos de dominio para la lista de modelos de dominio especificada.
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público PopContext Quita el contexto actual de la parte superior de la pila.
Método público PushContext Inserta un nuevo contexto en la parte superior de la pila de contexto de almacenamiento.
Método público RegisterTransactionLog Permite que un cliente registre un registro de transacciones que se le notifique los eventos de este almacén.
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).
Método público UnregisterTransactionLog Permite a un cliente para cancelar el registro de un registro de transacciones que se le notifiquen los eventos de este almacén.

Arriba

Eventos

  Nombre Descripción
Evento público StoreDisposing Se produce cuando el almacén está desechando.

Arriba

Métodos de extensión

  Nombre Descripción
Método de extensión público GetLocks Obtiene las marcas de bloqueo para esta instancia de almacén. (Definido por ImmutabilityExtensionMethods).
Método de extensión público IsLocked Probar si este almacén tiene cualquier bloqueo de los incluidos en un conjunto especificado (Definido por ImmutabilityExtensionMethods).
Método de extensión público SetLocks Establecer las marcas de bloqueo de esta instancia de almacén (Definido por ImmutabilityExtensionMethods).

Arriba

Comentarios

El almacén contiene información sobre uno o varios modelos. Un almacén puede contener una colección de modelos, aunque con frecuencia solamente haya un modelo en el almacén.

El almacén también contiene metadatos sobre un modelo e información sobre las instancias de los elementos y los vínculos entre los elementos que componen ese modelo. Los metadatos contienen los tipos permitidos en el modelo y sus relaciones.

El almacén tiene varias estructuras de datos se rellenen a un modelo se carga en el almacén. Esto se produce en las circunstancias siguientes:

  • cuando se inicia el lenguaje dominio- concreto, ya sea como compilación experimental

  • cuando se ha implementado el lenguaje dominio- concreto y un usuario final lo inicia

  • cuando se carga un modelo mediante programación en el almacén

DomainDataDirectory contiene metadatos sobre los tipos permitidos estar en el modelo.

ElementDirectory contiene información sobre cada instancia del elemento y sus vínculos. (Las instancias de ElementDirectory deben ser de los tipos definidos en DomainDataDirectory.)

Store, puede navegar a elementos individuales en el almacén. Puede recopilar información sobre elementos o tipos. También puede hacer las tareas siguientes:

  • agregar elementos

  • elimine los elementos

  • modifique los elementos y los vínculos existentes y sus propiedades

Siempre que se modifique un almacén, debe agregar código que escribe en el almacén de Transaction. Puede cancelar todos los cambios al almacén hecho en una transacción haciendo Rollback de transacción o no haciendo Commit de la transacción.

El almacén tiene RuleManager que contiene funcionalidad para suscribirse a las reglas. El almacén también puede suscribirse a eventos.

El almacén también tiene UndoManager que tiene miembros que permiten deshacer y la fase de rehacer cambia el almacén. Generalmente no tendrá que crear una nueva instancia de un almacén, aunque puede y pueda leer un modelo en él deserializando un modelo en la nueva instancia. A menudo, se obtiene acceso al almacén de propiedades de Store de un elemento o un vínculo en el modelo. Los argumentos de reglas y eventos proporcionan la instancia del elemento o el vínculo a la que la regla o el evento correspondiente, y puede utilizar la propiedad del almacén para tener acceso al almacén y su TransactionManager.

Ejemplos

Los ejemplos siguientes muestran maneras diferentes de crear instancias de un almacén. Cuando hay dependencias entre los modelos de dominio, como en el tercer ejemplo que sigue, los modelos de dominio se deben especificar en orden de dependencia.

// Create a store with your domain models (classes in the generated 
// code derived from Microsoft.VisualStudio.Modeling.DomainModel).
Store store = new Store(typeof(ActivityDomainModel));

// Domain models can be loaded into the store after construction.
// Be sure to call store.Dispose() when you are done with it. 
Store store2 = new Store();
Store2.LoadDomainModels(typeof(ActivityDomainModel));

// Multiple domain models can be loaded into the store at once
Store store3 = new Store(typeof(BaseActivityDomainModel), typeof(ExtendedActivityDomainModel));

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.

Vea también

Referencia

Microsoft.VisualStudio.Modeling (Espacio de nombres)

Otros recursos

[redirigir] Modelo de dominio en la API generada

How to: Create Elements in Code

How to: Create Elements in Code

How to: Create Links in Code

How to: Set or Get Domain Property Values

How to: Delete Elements and Links Programmatically

How to: Undo and Redo Changes Made to the Store