This documentation is archived and is not being maintained.

Microsoft.VisualStudio.Modeling Namespace

The Modeling namespace deals with additions, deletions, and modifications of elements and links when a model is created or modified.

The Modeling namespace classes allow your code to create and modify elements and links within transactions. The Store is the class that represents the contents (elements and links) of a model in memory. Whenever you programmatically make changes to a model, these changes must be done within a Transaction.

You can define rules that are run when certain things happen, such as an element or a link being added, changed, or deleted.

You can also subscribe to be notified when an event such as a transaction being rolled back occurs.

The difference between rules and events is that rules are fired within a transaction while events are fired after a transaction is committed.

Public classAddRuleRepresents a rule that is called when an object is added to the model.
Public classAmbiguousMonikerExceptionThe exception that is thrown when a model element to be added to the store has the same moniker as another element already in the store.
Public classAncestorVisitorFilterVisits all aggregating relationships.
Public classBreadthFirstRolePlayerFirstElementWalkerEnables breadth-first traversals of the model.
Public classCalculatedPropertyValueHandler<TElement, TValue>Base class for calculated domain property handlers.
Public classChainingElementVisitorFilterRepresents a chaining filter, which adds filters to a list.
Public classChangeRuleRepresents a rule that is called when a change happens to an element in the model.
Public classClosureContextHelperProvides methods to add and retrieve closure context information to and from a particular element walker context.
Public classClosureElementOperationRepresents closure element operations.
Public classClosureFindAndRelateElementOperationRepresents a closure operation to mark a find or create target element operation.
Public classClosureFindAndRelateOrDeleteCopiedElementOperationRepresents a closure operation to find and relate to an element or delete the copied element if the target is not found.
Public classClosureFindElementOperationRepresents a closure operation that marks a find target element operation.
Public classClosureFindOrCreateAndRelateElementOperationRepresents a closure operation that marks a find or create target element operation.
Public classClosureFindOrCreateElementOperationRepresents a closure operation that marks a find or create target element operation.
Public classContextContains the mapping of transactions to partitions.
Public classCopyOriginContextProvides information about the origin of the ElementGroupPrototype.
Public classCoreDomainModelRepresents the domain model that defines the basic elements used by all domain models.
Public classDefaultVisitorFilterVisits all aggregate relationships.
Public classDeleteRuleRepresents a rule that is called when an object is deleted from the model.
Public classDeletingRuleRepresents a rule that is called when an element is being deleted in the model.
Public classDepthFirstElementAndLinkWalkerEnables depth-first traversals of the model starting from a particular element or group of elements.
Public classDepthFirstElementWalkerEnables depth-first traversals of the model starting from a particular element or group of elements.
Public classDeserializationEndingEventArgsProvides data for the DeserializationEnding event and notifies listeners that deserialization has ended.
Public classDomainClassInfoRepresents a domain class.
Public classDomainClassXmlSerializerRepresents the base class for all generated domain serializers.
Public classDomainDataDirectoryStores metadata about the domain models in the store.
Public classDomainDataNotFoundExceptionThis exception is thrown by the DomainDataDirectory class when a domain element that has a specific identity is not found in the directory.
Public classDomainModelRepresents a domain model. This is the base class of the domain model of your DSL.
Protected classDomainModel.DomainMemberInfoStores information about a domain property in a domain model.
Protected classDomainModel.DomainRolePlayerInfoStores information that is used by the domain model reflector to locate a domain role.
Public classDomainModelInfoRepresents a domain model definition.
Public classDomainObjectIdAttributeRepresents the ID of a domain object.
Public classDomainObjectInfoRepresents an element in a domain model.
Public classDomainPropertyAttributeIndicates that the target is a domain property of a domain class.
Public classDomainPropertyInfoRepresents a property of a domain class.
Public classDomainPropertyValueHandlerRepresents the base class for domain property value handlers.
Public classDomainPropertyValueHandler<TElement, TValue>Represents the base class for strong-type domain property handlers.
Public classDomainRelationshipAttributeIndicates that the target is a domain relationship.
Public classDomainRelationshipInfoRepresents the metadata about a domain relationship.
Public classDomainRelationshipXmlSerializerRepresents the base class for all generated domain serializers for domain relationships.
Public classDomainRoleAttributeIndicates that the target is a domain role of a domain relationship.
Public classDomainRoleInfoRepresents a role of a domain relationship.
Public classDomainXmlSerializationBehaviorRepresents all XML serialization behavior-generated classes.
Public classDomainXmlSerializerDirectoryCombines XML serialization behaviors from different domain models together.
Public classDomainXmlSerializerDirectoryEntryAssociates one domain class ID to its DomainClassXmlSerializer type.
Public classElementAddedEventArgsProvides data for the ElementAdded event.
Public classElementAddedEventManagerManages element added events.
Public classElementClosureWalkerRepresents a walker that builds closures on model elements.
Public classElementDeletedEventArgsProvides data for the ElementDeleted event.
Public classElementDeletedEventManagerManages element removed events.
Public classElementDeletingEventArgsProvides data for the ElementDeleting event.
Public classElementDeserializedRule
Public classElementEventArgsProvides data for notifications associated with a model element.
Public classElementEventManagerIn derived classes, provides a mechanism for observers to register for and be notified of changes to an element within the scope of the store.
Public classElementEventsBegunEventArgsProvides data for the ElementEventsBegun event.
Public classElementEventsBegunEventManagerManages events that have begun for elements.
Public classElementEventsEndedEventArgsProvides data for the ElementEventsEnded event.
Public classElementEventsEndedEventManagerManages element events ended events.
Public classElementFactoryRepresents a factory of domain model objects.
Public classElementGroupProvides a way to collect elements and element links.
Public classElementGroupContextStores context information about an element group.
Public classElementGroupPrototypeContains the information necessary to recreate a set of elements and links. Used to store elements in tools, on the clipboard, and in a drag operation.
Public classElementLinkBase class for all domain relationships.
Public classElementMovedEventArgsProvides data for the ElementMoved event.
Public classElementMovedEventManagerManages element moved events.
Public classElementNameAttributeIndicates the target domain property provides the element name property.
Public classElementNameProviderRepresents a name provider for domain elements.
Public classElementOperationsProvides common operations that act upon a collection of model elements.
Public classElementPropertyChangedEventArgsProvides data for the ElementPropertyChanged event.
Public classElementPropertyChangedEventManagerManages element property changed events.
Public classElementWalkerEnables various traversals of the model starting from a particular element.
Public classEmbeddingVisitorFilterVisits all embedding relationships.
Public classEventManagerDirectoryEnables you to add or remove custom code to run when an event is raised.
Public classExistingElementEventManagerIn a derived class, manages element events.
Public classExtendsDomainModelAttributeIndicates the domain model that this domain model extends.
Public classGenericEventArgsAbstract base class for all event arguments for element events.
Public classGlobalEventManagerWhen overridden in a derived class, enables observers to register for and be notified of changes within a store.
Public classInternalModelingErrorExceptionRepresents the exception that is thrown when an internal error occurs inside the modeling engine.
Public classInvalidDomainModelExceptionRepresents an exception that is thrown when an error is encountered with the metadata assigned to a domain model.
Public classLinkedElementCollection<T>Provides a collection of all elements that are linked to an element.
Public classMergeAbortedExceptionRepresents an exception that is thrown when a merge operation on a domain model is aborted by the user.
Public classMergeContextProvides merge information initially set by the merge process when the objects of a ElementGroupPrototype are reconstituted into the target store.
Public classMergeElementGroupEventArgsProvides data for the MergeElementGroup event.
Public classModelElementThe base class for all domain model elements. All elements and links in a DomainModel are members of this type.
Public classModelingEventArgsProvides data for modeling events.
Public classModelingExceptionRepresents the base class for several exceptions thrown by the modeling engine.
Public classMonikerContains an expression used to map to its element.
Public classMonikerKeyRepresents the key of a Moniker.
Public classMoveRuleRepresents a rule that is called when an object is moved in the model.
Public classPartitionProvides a logical container for elements in a store.
Public classPartitionDictionaryRepresents a collection of partitions.
Public classPropagateDeleteVisitorFilterVisits all PropagateRemove relationships.
Public classPropertyAssignmentRepresents a property assignment pair that consists of property ID and a property value.
Public classProtoElementRepresents the prototype class for an element.
Public classProtoElementBaseRepresents the prototype for the element.
Public classProtoGroupContains the information to re-create an ElementGroup in the context of any store.
Public classProtoLinkContains the information needed to recreate an ElementLink in any store.
Public classProtoPropertyValueContains the information necessary to populate an attribute value for a particular model element.
Public classProtoRolePlayerContains the data necessary to set the role player data on an ElementLink.
Public classReadOnlyLinkedElementCollection<T>Represents a strongly-typed read-only collection of element instances on the opposite side of a relationship.
Public classRoleAssignmentProvides information to initialize a role that is assigned to a link element.
Public classRolePlayerChangedEventArgsProvides data for the RolePlayerChanged event.
Public classRolePlayerChangedEventManagerManages events that are changed by the role.
Public classRolePlayerChangeRuleRepresents a rule that is called when a role player in the model changes.
Public classRolePlayerOrderChangedEventArgsProvides data for the RolePlayerOrderChanged event.
Public classRolePlayerOrderChangedEventManagerManages events that are changed when the order of the model elements that are assigned to roles change.
Public classRolePlayerPositionChangeRuleRepresents a rule that is called when a model element that is assigned to a specific role changes position in the model.
Public classRootElementSettings
Public classRuleWhen overridden in a derived class, compares rules and determines when they are raised.
Public classRuleManagerControls whether rules are enabled or disabled.
Public classRuleOnAttributeSignifies that the class to which this attribute is applied is a rule.
Public classSerializationContextDefines the context of a serialization operation.
Public classSerializationExceptionThrows a SerializationResult as an exception.
Public classSerializationMessageRepresents a serialization message.
Public classSerializationResultRepresents a serialization result.
Public classSerializationUtilitiesProvides utilities for serialization.
Public classSimpleMonikerResolverResolves simple string references when the model is serialized using the default XML serialization.
Public classStoreThe store contains an in-memory representation of the elements and links in one or more models.
Public classTransactionA transaction makes sure that changes that were made to the store are treated as a group that can be committed or rolled back.
Public classTransactionBeginningEventArgsProvides data for the TransactionBeginning event.
Public classTransactionBeginningEventManagerManages transaction beginning events.
Public classTransactionBeginningRuleRepresents a rule that is called when a transaction is beginning in the model.
Public classTransactionCommitEventArgsProvides data for the TransactionCommit event.
Public classTransactionCommittedEventManagerManages transaction committed events.
Public classTransactionCommittingRuleRepresents a rule that is called when a transaction is in progress in the model.
Public classTransactionContextStores user data in a transaction.
Public classTransactionEventArgsProvides data for transaction events.
Public classTransactionEventManagerRepresents the base class for managing notifications of transaction events.
Public classTransactionItemRepresents a transaction item.
Public classTransactionLogRepresents a container of transaction events.
Public classTransactionManagerCreates Transaction objects and keeps track of the current active transaction.
Public classTransactionRollbackEventArgs
Public classTransactionRolledBackEventManagerManages transaction rollback events.
Public classTransactionRollingBackRuleRepresents a rule that is called when a transaction is being rolled back in the model.
Public classUndoItemEventArgsProvides data for the UndoItem event.
Public classUndoManagerProvides the functionality for undo and redo operations.
Public classUndoRedoCanceledExceptionRepresents the exception that is thrown when an undo or redo operation has been canceled.
Public classVisitorFiltersReturns various standard visitor filters.

Public structureReadOnlyLinkedElementCollection<T>.EnumeratorProvides an enumerator over a ReadOnlyLinkedElementCollection

Public interfaceIElementDirectoryDirectory of model elements that are contained within a store or a partition.
Public interfaceIElementVisitorDefines the traversal of a model.
Public interfaceIElementVisitorFilterProvides a callback mechanism for filtering out which role players and which relationships should be visited during traversal by an ElementWalker.
Public interfaceIMergeElementsAllows classes in derived models to access the merge functionality on a model element.
Public interfaceIMonikerResolverResolves a moniker to its element.
Public interfaceISchemaResolver

Public delegateCanCommitCallbackRepresents a callback method for determining whether a transaction can commit based on external criteria.
Public delegateCanUndoRedoCallbackDetermines if an undo or redo operation can proceed, based on external criteria.

Public enumerationChangeSourceIndicates the source of a change that was made during a transaction.
Public enumerationClosureTypeDescribes the type of closure to create.
Public enumerationCompletionStatusDescribes how the transaction was completed.
Public enumerationDeleteStateIdentifies the state of the element being deleted.
Public enumerationDomainPropertyKindSpecifies the type of domain property.
Public enumerationDomainRoleOrderSpecifies the direction of a domain role in a domain relationship.
Public enumerationMultiplicityIndicates the multiplicity for a domain role.
Public enumerationSerializationMessageKindFormats the serialization message.
Public enumerationTimeToFireDetermines when to call the rule.
Public enumerationUndoStateDescribes the undo state in the UndoManager.
Public enumerationVisitorFilterResultIndicates whether an element should be visited.