Jak: tworzenie elementów i relacje
W kodzie programu z rozszerzeniem do Visual Studio Ultimate, można tworzyć i usuwać elementy i relacji.
Utwórz Element modelu
Przywóz do obszaru nazw
Musi zawierać następujące using instrukcji.
Metody tworzenia są zdefiniowane jako rozszerzenie metody, w tym obszarze nazw:
using Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml;
Uzyskać właściciel elementu, który chcesz utworzyć
Wzór stanowi jedno drzewo tak, aby każdy element ma jednego właściciela, z wyjątkiem dla katalogu głównego modelu.Typ jest katalogu głównego modelu IModel, który jest rodzajem IPackage.
Jeśli tworzysz element, który będzie wyświetlany w szczególności diagramu, na przykład diagram bieżącego użytkownika, należy zwykle utworzeniu w pakiet, który jest powiązany z tym diagramem.Na przykład:
IPackage linkedPackage = Context.CurrentDiagram.Element as IPackage;
Ta tabela zawiera zestawienie własności wspólne elementy modelu:
Element ma zostać utworzony |
Właściciel |
---|---|
IActor, IUseCase, IComponent, IClass, IInterface, IEnumeration IActivity, IInteraction |
IPackage, IModel |
IAttribute, IOperation |
IClass, IInterface |
IPart, IPort |
IComponent |
IAction, IObjectNode |
IActivity |
ILifeline, IMessage, ICombinedFragment |
IInteraction |
Wywołanie metody Create na właściciela
Nazwa metody ma postać: CreateOwnedType().Na przykład:
IUseCase usecase1 = linkedPackage.CreateUseCase();
Niektóre typy mają bardziej złożone metody tworzenia, szczególnie na diagramach sekwencji.See Jak: Edycja diagramy sekwencji za pomocą interfejsu API UML.
W przypadku niektórych typów elementów, można zmienić właściciela elementu okresie jego istnienia, za pomocą SetOwner(newOwner).
Ustawianie nazwy i innych właściwości
usecase1.Name = "user logs in";
Przykład
using Microsoft.VisualStudio.Uml.Classes;
using Microsoft.VisualStudio.Uml.Extensions;
...
void InstantiateObserverPattern (IPackage package, string namePrefix)
{ IInterface observer = package.CreateInterface();
observer.Name = namePrefix + "Observer";
IOperation operation = observer.CreateOperation();
operation.Name = "Update";
IClass subject = package.CreateClass();
subject.Name = namePrefix + "Subject"; ...
Utwórz skojarzenie
Aby utworzyć skojarzenie
Uzyskaj właściciela skojarzenia, która jest zwykle pakietu lub modelu zawierających źródła końca relacji.
Wywoływanie metody Create wymagane na właściciela.
Ustawianie właściwości relacji, takie jak jego nazwa.
Na przykład:
IAssociation association = subject.Package.CreateAssociation(subject, observer); association .Name = "Observes";
Ustawić właściwości każdego końca relacji.Istnieją zawsze dwie MemberEnds.Na przykład:
association .MemberEnds[0].Name = "subject"; // role name association .MemberEnds[1].Name = "observers"; // role name association .MemberEnds[1].SetBounds("0..*"); // multiplicity defaults to "1" association.MemberEnds[0].Aggregation = AggregationKind.Composite;
Tworzenie generalizacji
IGeneralization generalization =
subclass.CreateGeneralization(superClass);
Usuń Element, związek lub generalizacji z modelu
anElement.Delete();
Usunięcie elementu z modelu:
Każdy relacji, która łączy do niego również zostanie usunięta.
Każdy kształt, który on reprezentowany na diagramie jest również usuwany.