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í
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:
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 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));
![]() |
---|
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:
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) ... }}
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