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ě
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:
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ář 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));
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:
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) ... }}
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