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.11.0 (en Microsoft.VisualStudio.Modeling.Sdk.11.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 de almacén que delega la implementación de IServiceProvider al proveedor de servicios 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 del 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á actualmente petición que carga 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 del 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 del elemento del modelo.
Propiedad pública EventManagerDirectory Obtiene el directorio del administrador del modelo.
Propiedad pública Id Obtiene el identificador de almacén.
Propiedad pública InRedo Obtiene el almacén y comprueba si el contexto actual del almacén se rehaciendo.
Propiedad pública InSerializationTransaction Indica que el almacén tiene a actualmente la transacción activa de serialización en la pila de la transacción
Propiedad pública InUndo Obtiene el almacén y comprueba si el contexto actual del almacén se está deshaciendo.
Propiedad pública InUndoRedoOrRollback Obtiene el almacén y comprueba si el contexto actual del almacén se rehaciendo, deshacer, o revertirse a.
Propiedad pública Partitions Obtiene la colección de objetos del elemento del almacén.
Propiedad pública PartitionsAlternate obtiene las particiones utilizadas en el almacén.
Propiedad pública PropertyBag Obtiene el contenedor de propiedades del almacén.
Propiedad pública RuleManager Obtiene el administrador de la regla del almacén.
Propiedad pública SerializerDirectory El directorio predeterminado de serialización para este almacén
Propiedad pública ShuttingDown Obtiene el almacén y comprueba si el almacén está cerrándose, o establece el estado del almacén como cerrando.
Propiedad pública TransactionActive Obtiene o establece si el almacén tiene a actualmente la 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 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 IMonikerResolver para el modelo de dominio especificado.
Método público DefaultPartitionForClass Devuelve la parte en la que los nuevos elementos de la clase especificada se deben crear de forma predeterminada.
Método público Dispose Elimine 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 Encuentra un modelo de dominio por su identificador
Método público FindMonikerResolver encuentra IMonikerResolver registrado para el modelo de dominio especificado.
Método público GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType) Crea un prototipo del grupo de elementos en la partición predeterminada de cierre determinado tipo si una lista de elementos raíz se especifica.
Método público GetClosurePrototypeGroup(ICollection<ModelElement>, ClosureType, Boolean) Crea un prototipo del grupo de elementos en la partición predeterminada de cierre especificado tipo cuando se especifica una lista de elementos raíz y permite omitir de carga de la demanda.
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 especificado del modelo de dominio.
Método público GetHashCode Actúa como función hash para un tipo concreto. (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 especificada de modelos de dominio.
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público PopContext Quita el contexto 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 store.
Método público RegisterTransactionLog Permite que un cliente registre un registro de transacciones que se notifique de eventos en 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 Ofrece al cliente el registro un registro de transacciones de la notificación de eventos en 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 los indicadores de bloqueo para esta instancia del almacén (Definido por ImmutabilityExtensionMethods).
Método de extensión público IsLocked Pruebe de si este almacén tiene cualquiera de un conjunto especificado bloqueos (Definido por ImmutabilityExtensionMethods).
Método de extensión público SetLocks Establezca los indicadores de bloqueo de esta instancia del 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 específico, ya sea como compilación experimental

  • cuando se ha implementado el lenguaje específico 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

  • eliminar 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