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.

Classes

  Class Description
Public class AddRule Represents a rule that is called when an object is added to the model.
Public class AmbiguousMonikerException The 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 class AncestorVisitorFilter Visits all aggregating relationships.
Public class BreadthFirstRolePlayerFirstElementWalker Enables breadth-first traversals of the model.
Public class CalculatedPropertyValueHandler<TElement, TValue> Base class for calculated domain property handlers.
Public class ChainingElementVisitorFilter Represents a chaining filter, which adds filters to a list.
Public class ChangeRule Represents a rule that is called when a change happens to an element in the model.
Public class ClosureContextHelper Provides methods to add and retrieve closure context information to and from a particular element walker context.
Public class ClosureElementOperation Represents closure element operations.
Public class ClosureFindAndRelateElementOperation Represents a closure operation to mark a find or create target element operation.
Public class ClosureFindAndRelateOrDeleteCopiedElementOperation Represents a closure operation to find and relate to an element or delete the copied element if the target is not found.
Public class ClosureFindElementOperation Represents a closure operation that marks a find target element operation.
Public class ClosureFindOrCreateAndRelateElementOperation Represents a closure operation that marks a find or create target element operation.
Public class ClosureFindOrCreateElementOperation Represents a closure operation that marks a find or create target element operation.
Public class Context Contains the mapping of transactions to partitions.
Public class CopyOriginContext Provides information about the origin of the ElementGroupPrototype.
Public class CoreDomainModel Represents the domain model that defines the basic elements used by all domain models.
Public class DefaultVisitorFilter Visits all aggregate relationships.
Public class DeleteRule Represents a rule that is called when an object is deleted from the model.
Public class DeletingRule Represents a rule that is called when an element is being deleted in the model.
Public class DepthFirstElementAndLinkWalker Enables depth-first traversals of the model starting from a particular element or group of elements.
Public class DepthFirstElementWalker Enables depth-first traversals of the model starting from a particular element or group of elements.
Public class DeserializationEndingEventArgs Provides data for the DeserializationEnding event and notifies listeners that deserialization has ended.
Public class DomainClassInfo Represents a domain class.
Public class DomainClassXmlSerializer Represents the base class for all generated domain serializers.
Public class DomainDataDirectory Stores metadata about the domain models in the store.
Public class DomainDataNotFoundException This exception is thrown by the DomainDataDirectory class when a domain element that has a specific identity is not found in the directory.
Public class DomainModel Represents a domain model. This is the base class of the domain model of your DSL.
Protected class DomainModel.DomainMemberInfo Stores information about a domain property in a domain model.
Protected class DomainModel.DomainRolePlayerInfo Stores information that is used by the domain model reflector to locate a domain role.
Public class DomainModelInfo Represents a domain model definition.
Public class DomainObjectIdAttribute Represents the ID of a domain object.
Public class DomainObjectInfo Represents an element in a domain model.
Public class DomainPropertyAttribute Indicates that the target is a domain property of a domain class.
Public class DomainPropertyInfo Represents a property of a domain class.
Public class DomainPropertyValueHandler Represents the base class for domain property value handlers.
Public class DomainPropertyValueHandler<TElement, TValue> Represents the base class for strong-type domain property handlers.
Public class DomainRelationshipAttribute Indicates that the target is a domain relationship.
Public class DomainRelationshipInfo Represents the metadata about a domain relationship.
Public class DomainRelationshipXmlSerializer Represents the base class for all generated domain serializers for domain relationships.
Public class DomainRoleAttribute Indicates that the target is a domain role of a domain relationship.
Public class DomainRoleInfo Represents a role of a domain relationship.
Public class DomainXmlSerializationBehavior Represents all XML serialization behavior-generated classes.
Public class DomainXmlSerializerDirectory Combines XML serialization behaviors from different domain models together.
Public class DomainXmlSerializerDirectoryEntry Associates one domain class ID to its DomainClassXmlSerializer type.
Public class ElementAddedEventArgs Provides data for the ElementAdded event.
Public class ElementAddedEventManager Manages element added events.
Public class ElementClosureWalker Represents a walker that builds closures on model elements.
Public class ElementDeletedEventArgs Provides data for the ElementDeleted event.
Public class ElementDeletedEventManager Manages element removed events.
Public class ElementDeletingEventArgs Provides data for the ElementDeleting event.
Public class ElementDeserializedRule
Public class ElementEventArgs Provides data for notifications associated with a model element.
Public class ElementEventManager In 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 class ElementEventsBegunEventArgs Provides data for the ElementEventsBegun event.
Public class ElementEventsBegunEventManager Manages events that have begun for elements.
Public class ElementEventsEndedEventArgs Provides data for the ElementEventsEnded event.
Public class ElementEventsEndedEventManager Manages element events ended events.
Public class ElementFactory Represents a factory of domain model objects.
Public class ElementGroup Provides a way to collect elements and element links.
Public class ElementGroupContext Stores context information about an element group.
Public class ElementGroupPrototype Contains 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 class ElementLink Base class for all domain relationships.
Public class ElementMovedEventArgs Provides data for the ElementMoved event.
Public class ElementMovedEventManager Manages element moved events.
Public class ElementNameAttribute Indicates the target domain property provides the element name property.
Public class ElementNameProvider Represents a name provider for domain elements.
Public class ElementOperations Provides common operations that act upon a collection of model elements.
Public class ElementPropertyChangedEventArgs Provides data for the ElementPropertyChanged event.
Public class ElementPropertyChangedEventManager Manages element property changed events.
Public class ElementWalker Enables various traversals of the model starting from a particular element.
Public class EmbeddingVisitorFilter Visits all embedding relationships.
Public class EventManagerDirectory Enables you to add or remove custom code to run when an event is raised.
Public class ExistingElementEventManager In a derived class, manages element events.
Public class ExtendsDomainModelAttribute Indicates the domain model that this domain model extends.
Public class GenericEventArgs Abstract base class for all event arguments for element events.
Public class GlobalEventManager When overridden in a derived class, enables observers to register for and be notified of changes within a store.
Public class InternalModelingErrorException Represents the exception that is thrown when an internal error occurs inside the modeling engine.
Public class InvalidDomainModelException Represents an exception that is thrown when an error is encountered with the metadata assigned to a domain model.
Public class LinkedElementCollection<T> Provides a collection of all elements that are linked to an element.
Public class MergeAbortedException Represents an exception that is thrown when a merge operation on a domain model is aborted by the user.
Public class MergeContext Provides merge information initially set by the merge process when the objects of a ElementGroupPrototype are reconstituted into the target store.
Public class MergeElementGroupEventArgs Provides data for the MergeElementGroup event.
Public class ModelElement The base class for all domain model elements. All elements and links in a DomainModel are members of this type.
Public class ModelingEventArgs Provides data for modeling events.
Public class ModelingException Represents the base class for several exceptions thrown by the modeling engine.
Public class Moniker Contains an expression used to map to its element.
Public class MonikerKey Represents the key of a Moniker.
Public class MoveRule Represents a rule that is called when an object is moved in the model.
Public class Partition Provides a logical container for elements in a store.
Public class PartitionDictionary Represents a collection of partitions.
Public class PropagateDeleteVisitorFilter Visits all PropagateRemove relationships.
Public class PropertyAssignment Represents a property assignment pair that consists of property ID and a property value.
Public class ProtoElement Represents the prototype class for an element.
Public class ProtoElementBase Represents the prototype for the element.
Public class ProtoGroup Contains the information to re-create an ElementGroup in the context of any store.
Public class ProtoLink Contains the information needed to recreate an ElementLink in any store.
Public class ProtoPropertyValue Contains the information necessary to populate an attribute value for a particular model element.
Public class ProtoRolePlayer Contains the data necessary to set the role player data on an ElementLink.
Public class ReadOnlyLinkedElementCollection<T> Represents a strongly-typed read-only collection of element instances on the opposite side of a relationship.
Public class RoleAssignment Provides information to initialize a role that is assigned to a link element.
Public class RolePlayerChangedEventArgs Provides data for the RolePlayerChanged event.
Public class RolePlayerChangedEventManager Manages events that are changed by the role.
Public class RolePlayerChangeRule Represents a rule that is called when a role player in the model changes.
Public class RolePlayerOrderChangedEventArgs Provides data for the RolePlayerOrderChanged event.
Public class RolePlayerOrderChangedEventManager Manages events that are changed when the order of the model elements that are assigned to roles change.
Public class RolePlayerPositionChangeRule Represents a rule that is called when a model element that is assigned to a specific role changes position in the model.
Public class RootElementSettings
Public class Rule When overridden in a derived class, compares rules and determines when they are raised.
Public class RuleManager Controls whether rules are enabled or disabled.
Public class RuleOnAttribute Signifies that the class to which this attribute is applied is a rule.
Public class SerializationContext Defines the context of a serialization operation.
Public class SerializationException Throws a SerializationResult as an exception.
Public class SerializationMessage Represents a serialization message.
Public class SerializationResult Represents a serialization result.
Public class SerializationUtilities Provides utilities for serialization.
Public class SimpleMonikerResolver Resolves simple string references when the model is serialized using the default XML serialization.
Public class Store The store contains an in-memory representation of the elements and links in one or more models.
Public class Transaction A transaction makes sure that changes that were made to the store are treated as a group that can be committed or rolled back.
Public class TransactionBeginningEventArgs Provides data for the TransactionBeginning event.
Public class TransactionBeginningEventManager Manages transaction beginning events.
Public class TransactionBeginningRule Represents a rule that is called when a transaction is beginning in the model.
Public class TransactionCommitEventArgs Provides data for the TransactionCommit event.
Public class TransactionCommittedEventManager Manages transaction committed events.
Public class TransactionCommittingRule Represents a rule that is called when a transaction is in progress in the model.
Public class TransactionContext Stores user data in a transaction.
Public class TransactionEventArgs Provides data for transaction events.
Public class TransactionEventManager Represents the base class for managing notifications of transaction events.
Public class TransactionItem Represents a transaction item.
Public class TransactionLog Represents a container of transaction events.
Public class TransactionManager Creates Transaction objects and keeps track of the current active transaction.
Public class TransactionRollbackEventArgs
Public class TransactionRolledBackEventManager Manages transaction rollback events.
Public class TransactionRollingBackRule Represents a rule that is called when a transaction is being rolled back in the model.
Public class UndoItemEventArgs Provides data for the UndoItem event.
Public class UndoManager Provides the functionality for undo and redo operations.
Public class UndoRedoCanceledException Represents the exception that is thrown when an undo or redo operation has been canceled.
Public class VisitorFilters Returns various standard visitor filters.

Structures

  Structure Description
Public structure ReadOnlyLinkedElementCollection<T>.Enumerator Provides an enumerator over a ReadOnlyLinkedElementCollection

Interfaces

  Interface Description
Public interface IElementDirectory Directory of model elements that are contained within a store or a partition.
Public interface IElementVisitor Defines the traversal of a model.
Public interface IElementVisitorFilter Provides a callback mechanism for filtering out which role players and which relationships should be visited during traversal by an ElementWalker.
Public interface IMergeElements Allows classes in derived models to access the merge functionality on a model element.
Public interface IMonikerResolver Resolves a moniker to its element.
Public interface ISchemaResolver

Delegates

  Delegate Description
Public delegate CanCommitCallback Represents a callback method for determining whether a transaction can commit based on external criteria.
Public delegate CanUndoRedoCallback Determines if an undo or redo operation can proceed, based on external criteria.

Enumerations

  Enumeration Description
Public enumeration ChangeSource Indicates the source of a change that was made during a transaction.
Public enumeration ClosureType Describes the type of closure to create.
Public enumeration CompletionStatus Describes how the transaction was completed.
Public enumeration DeleteState Identifies the state of the element being deleted.
Public enumeration DomainPropertyKind Specifies the type of domain property.
Public enumeration DomainRoleOrder Specifies the direction of a domain role in a domain relationship.
Public enumeration Multiplicity Indicates the multiplicity for a domain role.
Public enumeration SerializationMessageKind Formats the serialization message.
Public enumeration TimeToFire Determines when to call the rule.
Public enumeration UndoState Describes the undo state in the UndoManager.
Public enumeration VisitorFilterResult Indicates whether an element should be visited.