Sdílet prostřednictvím


Procházení a aktualizace modelů vrstev v programovém kódu

Toto téma popisuje prvky a vztahy v modelech vrstvy, které můžete přejít a aktualizovat v Visual Studio Ultimate s použitím programového kódu.

Další informace o diagramy vrstev z hlediska uživatele, naleznete v části Diagramy vrstev: Referenční dokumentace a Diagramy vrstev: Pokyny.

Microsoft.VisualStudio.ArchitectureTools.Extensibility.Layer Model popsaný v tomto tématu je fasádou na další Obecné Microsoft.VisualStudio.GraphModel modelu.Pokud píšete rozšíření nabídky příkaz nebo gesto, použít Layer modelu.Pokud píšete vrstvy ověření rozšíření, je snazší použít GraphModel.

Transakce

Při aktualizaci modelu, zvažte uzavření změny v ILinkedUndoTransaction.Toto zadání seskupí své změny do jedné transakce.Je-li změny nezdaří, bude celá transakce vrácena zpět.Pokud uživatel vrátí zpět změny, všechny změny budou vráceny zpět společně.

Další informace naleznete v tématu Postupy: Propojení aktualizací modelů pomocí transakcí.

using (ILinkedUndoTransaction t =
        LinkedUndoContext.BeginTransaction("a name"))
{ 
    // Make changes here ....
    t.Commit(); // Don't forget this!
}

Členství ve skupině

ILayer a ILayerModel může obsahovat oba ILayers.

Vrstvy (ILayer) a vrstva modelu (ILayerModel) mohou obsahovat komentáře a vrstvy.

Vrstvu (ILayer) mohou být obsažena ve vrstvě modelu (ILayerModel) nebo mohou být vnořené v rámci jiného ILayer.

Chcete-li vytvořit komentář nebo vrstvu, použijte metody vytvoření na příslušného kontejneru.

Propojení závislostí

Odkaz závislostí je reprezentována objektu.Může být navigaci v obou směrech:

ILayerDependencyLink připojí dvou ILayers.

Chcete-li vytvořit odkaz závislostí, volejte source.CreateDependencyLink(target).

Komentáře

Komentáře mohou být obsažena v rámci vrstvy nebo vrstvu modelu a mohou být také propojeny s libovolný element vrstvy:

Komentáře lze připojit k libovolnému prvku vrstvy.

Komentář lze propojit libovolný počet elementů, včetně none.

Chcete-li získat poznámky, které jsou připojeny k element a vrstva, použijte:

ILayerModel model = diagram.GetLayerModel(); 
IEnumerable<ILayerComment> comments = 
   model.Comments.Where(comment => 
      comment.Links.Any(link => link.Target == layerElement));
Poznámka k upozorněníUpozornění

Comments Vlastnost ILayer získá poznámky, které jsou obsaženy v rámci ILayer.Poznámky, které jsou propojeny do něj nebude mít.

Umožňuje vytvořit komentář vyvoláním CreateComment() na příslušného kontejneru.

Vytvořit odkaz s použitím CreateLink() na komentář.

Elementy vrstvy

Všechny typy elementu, který může být obsažena v modelu jsou elementy vrstvy:

Diagram obsahu vrstvy jsou ILayerElements.

Vlastnosti

Každá ILayerElement má slovník řetězec s názvem Properties.Můžete připojit k libovolný element vrstvy libovolného informaci tohoto slovníku.

Odkazy na artefakt

Odkaz na artefakt (ILayerArtifactReference) představuje propojení mezi vrstvou a položky projektu, například souboru, třída nebo složky.Když uživatel vytvoří nebo přidá do vrstvy přetažením položky na diagramu vrstev z Průzkumníka řešení nebo Průzkumník architektury, vytváření artefakty.Libovolný počet artefaktu odkazy lze propojit do vrstvy.

Každý řádek v Průzkumníku vrstvy zobrazuje odkaz na artefakt.Další informace naleznete v tématu Vytváření diagramů vrstev z kódu.

Hlavní typy a metody, které jsou příslušné s odkazy na artefakt jsou následující:

ILayerArtifactReference.Vlastnost kategorií určuje, jaký typ artefaktu se odkazuje, jako je třída, spustitelný soubor nebo sestavení.Kategorie určuje, jak identifikátor identifikuje artefakt cíl.

CreateArtifactReferenceAsync Vytvoří odkaz na artefakt z Project nebo ProjectItem.Toto je asynchronní operace.Proto je obvykle zadat zpětné volání, která je volána po dokončení vytvoření.

Odkazy na artefakt vrstvy byste neměli zaměňovat s artefakty v diagramy případu použití.

Tvary a diagramy

Pro každý prvek ve vrstvě modelu používají dva objekty: ILayerElement, a IShape.IShape Představuje umístění a velikost tvaru v diagramu.V seznamu modely vrstvy každých ILayerElement má jeden IShape, a každý IShape ve vrstvě diagramu má jeden ILayerElement.IShape také se používá pro modely UML.Proto nemusí být vždy IShape má element vrstvy.

Stejným způsobem jako ILayerModel se zobrazí v jednom IDiagram.

V poli kód vlastní příkaz nebo obslužná rutina gest a můžete získat aktuální diagram aktuální výběr tvarů z DiagramContext importovat:

public class ... {
[Import]
    public IDiagramContext DiagramContext { get; set; }
...
public void ... (...) 
{ IDiagram diagram = this.DiagramContext.CurrentDiagram;
  ILayerModel model = diagram.GetLayerModel();
  if (model != null)
  { foreach (ILayer layer in model.Layers) { ... }}
  foreach (IShape selected in diagram.SelectedShapes)
  { ILayerElement element = selected.GetLayerElement();
    if (element != null) ... }}

Každý ILayerElement je přednášející: IShape.

IShape a IDiagram slouží k zobrazení modely UML.Další informace naleznete v tématu Postupy: Zobrazení modelu v diagramech.

Viz také

Koncepty

Přidávání příkazů a gest do diagramů vrstev

Přidání ověření vlastní architektury do diagramů vrstev

Přidání vlastních vlastností do diagramu vrstev

Diagramy vrstev: Referenční dokumentace

Diagramy vrstev: Pokyny

Rozšiřování modelů a diagramů UML