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 | |
---|---|---|
Store(array<Type[]) | Inicializa una nueva instancia de la clase Store. | |
Store(IServiceProvider, array<Type[]) | Inicializa una nueva instancia de la clase Store. | |
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 | |
---|---|---|
ChangeSource | Obtiene el origen actual de cambio para las operaciones en el almacén. | |
CurrentContext | Obtiene el contexto actual para el almacén. | |
DefaultPartition | Obtiene o establece la partición predeterminada para el almacén. | |
DemandLoading | Obtiene si el almacén está demandando actualmente que se cargue una relación. | |
Disposed | Obtiene si se ha desechado el almacén. | |
DomainDataDirectory | Obtiene el directorio de información de dominio del almacén. | |
DomainModels | Obtiene una colección de modelos de dominio en este almacén. | |
ElementDirectory | Obtiene el directorio de los elementos contenidos dentro del almacén. | |
ElementFactory | Obtiene el generador de elementos del modelo. | |
EventManagerDirectory | Obtiene el directorio del administrador de eventos del modelo. | |
Id | Obtiene el identificador del almacén. | |
InRedo | Obtiene el almacén y comprueba si el contexto actual del almacén está en fase de puesta al día. | |
InSerializationTransaction | Indica que el almacén tiene actualmente una transacción de serialización activa en la pila de transacciones | |
InUndo | Obtiene el almacén y comprueba si el contexto actual del almacén está en fase de reversión. | |
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. | |
Partitions | Obtiene la colección de objetos Partition del almacén. | |
PartitionsAlternate | Obtiene las particiones usadas en el almacén. | |
PropertyBag | Obtiene el contenedor de propiedades del almacén. | |
RuleManager | Obtiene el administrador de reglas para el almacén. | |
SerializerDirectory | Directorio de serialización predeterminado para este almacén. | |
ShuttingDown | Obtiene el almacén y comprueba si se está cerrando, o establece el estado del almacén como cerrado. | |
TransactionActive | Obtiene o establece si el almacén tiene actualmente una transacción activa. | |
TransactionLogs | Obtiene la lista actual de los registros de transacciones del almacén. | |
TransactionManager | Obtiene el administrador de transacciones para el modelo. | |
UndoManager | Obtiene el UndoManager para el contexto predeterminado. | |
Version | Obtiene la versión del almacén. |
Arriba
Métodos
Nombre | Descripción | |
---|---|---|
AddMonikerResolver | Registre un IMonikerResolver para el modelo de dominio especificado. | |
DefaultPartitionForClass | Devuelve la partición en la que deben crearse los nuevos elementos de la clase especificada de forma predeterminada. | |
Dispose | Desecha el almacén. | |
Equals | Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object). | |
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). | |
FindDomainModel | Busca un modelo de dominio por su identificador. | |
FindMonikerResolver | Busca el IMonikerResolver registrado para el modelo de dominio especificado. | |
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. | |
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. | |
GetDomainModel(Guid) | Obtiene una instancia de un modelo de dominio por su identificador. | |
GetDomainModel<T>() | Obtiene una instancia de un tipo de modelo de dominio especificado. | |
GetHashCode | Sirve como la función hash predeterminada. (Se hereda de Object). | |
GetService | Obtiene un servicio. | |
GetType | Obtiene el objeto Type de la instancia actual. (Se hereda de Object). | |
LoadDomainModels | Crea todos los datos de dominio para la lista de modelos de dominio especificada. | |
MemberwiseClone | Crea una copia superficial del objeto Object actual. (Se hereda de Object). | |
PopContext | Quita el contexto actual de la parte superior de la pila. | |
PushContext | Inserta un nuevo contexto en la parte superior de la pila de contexto de almacenamiento. | |
RegisterTransactionLog | Permite que un cliente registre un registro de transacciones que se le notifique los eventos de este almacén. | |
ToString | Devuelve una cadena que representa el objeto actual. (Se hereda de Object). | |
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 | |
---|---|---|
StoreDisposing | Se produce cuando el almacén está desechando. |
Arriba
Métodos de extensión
Nombre | Descripción | |
---|---|---|
GetLocks | Obtiene las marcas de bloqueo para esta instancia de almacén. (Definido por ImmutabilityExtensionMethods). | |
IsLocked | Probar si este almacén tiene cualquier bloqueo de los incluidos en un conjunto especificado (Definido por ImmutabilityExtensionMethods). | |
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: Set or Get Domain Property Values