Sdílet prostřednictvím


Navigace a aktualizaci vrstvy modely v kódu programu

Toto téma popisuje prvky a vztahy v modelech vrstvy, které můžete přecházet a aktualizovat v Visual Studio Ultimate pomocí programového kódu.

Další informace o diagramech vrstev z hlediska uživatele, naleznete v Diagramy vrstvy: odkaz a Diagramy vrstvy: pokyny.

Microsoft.VisualStudio.ArchitectureTools.Extensibility.Layer Model popsaný v tomto tématu je fasády v obecnějším Microsoft.VisualStudio.GraphModel model.Pokud vytváříte příkaz nebo speciální tah pro rozšíření nabídky, použít Layer model.Pokud píšete vrstvu ověřování rozšíření, je jednodušší použít GraphModel.

Transakce

Při aktualizaci modelu zvažte orámování změnami ILinkedUndoTransaction.Toto seskupení změny do jedné transakce.Pokud změny nezdaří, bude celá transakce vrácena zpět.Pokud uživatel vrátí zpět změny, tyto změny budou vráceny zpět dohromady.

Další informace naleznete v tématu Jak: aktualizace modelu odkaz pomocí transakcí.

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

Uzavření

ILayer a ILayerModel mohou obě obsahovat ILayers.

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

Vrstvy (ILayer) mohou být obsažena ve vrstvě modelu (ILayerModel) nebo může být vnořená uvnitř jiné ILayer.

Chcete-li vytvořit poznámku nebo vrstvy, použijte metody vytváření na odpovídající kontejner.

Propojení závislostí

Propojení závislostí je reprezentována objektem.To lze nalézt v obou směrech:

ILayerDependencyLink spojuje dva ILayers.

Vytvoření odkazu závislost, volání source.CreateDependencyLink(target).

Komentáře

Komentáře mohou být obsažena uvnitř vrstvy a vrstvy modelu a je také možné propojit k libovolnému prvku vrstvy:

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

Komentáře mohou být propojeny s libovolný počet elementů, včetně žádný.

Komentáře, které jsou připojené k prvku vrstvy, 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á komentáře, které jsou obsaženy v rámci ILayer.Komentáře, které jsou propojeny k němu nedostane.

Vytvoření poznámky vyvoláním CreateComment() na odpovídající kontejner.

Vytvořit propojení pomocí CreateLink() na komentář.

Elementy vrstvy

Všechny druhy element, 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.Tento slovník můžete připojit libovolné informace k libovolnému prvku vrstvy.

Odkazy artefakt

Odkaz na artefakt (ILayerArtifactReference) představuje propojení mezi vrstvou a položky projektu, jako je například soubor, třídy nebo do jiné složky.Když uživatel vytvoří nebo přidá do vrstvy přetažením položky diagram vrstvy z Průzkumníku řešení nebo Průzkumníku architektury, vytváříte artefakty.Libovolný počet artefaktů odkazy mohou být propojeny s vrstvou.

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

Hlavní typy a metody, které se zabývají artefakt odkazy jsou:

ILayerArtifactReference.Vlastnost kategorie označuje, jaký typ artefaktů je uváděný jako třída, spustitelný soubor nebo sestavení.Kategorie určuje, jak určuje identifikátor cílové artefaktů.

CreateArtifactReferenceAsyncVytvoří odkaz artefakt z Project nebo ProjectItem.Toto je asynchronní operace.Proto obvykle poskytují zpětného volání, která je volána po dokončení vytváření.

Vrstva artefakt odkazy nelze zaměňovat s artefakty v diagramy případu použití.

Tvary a diagramy

Dva objekty slouží k reprezentaci každý prvek ve vrstvě modelu: ILayerElementa IShape.IShape Představuje umístění a velikost obrazce v diagramu.V modelech vrstvy každé ILayerElement má jednu IShapea každý IShape ve vrstvě diagramu má jednu ILayerElement.IShapeslouží také pro modely UML.Proto nemusí být vždy IShape má element vrstvy.

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

V kódu vlastních příkazů nebo speciálního tahu pro funkci obslužné rutiny a můžete získat aktuální diagram aktuální výběr obrazců z DiagramContext import:

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ředložený IShape.

IShapea IDiagram se také používají k zobrazování modely UML.Další informace naleznete v tématu Jak: zobrazení v diagramech modelu.

Viz také

Koncepty

Přidání příkazů a gesta diagramy vrstvy

Přidání vlastní ověření architektura diagramy vrstvy

Přidání vlastní vlastnosti vrstvy diagramu

Diagramy vrstvy: odkaz

Diagramy vrstvy: pokyny

Rozšíření modelů UML a diagramů