Udostępnij za pośrednictwem


Nawigowanie i aktualizowanie modeli warstw w kodzie programu

W tym temacie opisano elementy i relacje w warstwie modeli, które może przejść i aktualizacji w Visual Studio Ultimate przy użyciu kodu programu.

Aby uzyskać więcej informacji na temat diagramów warstwowych z jego punktu widzenia, zobacz Diagramy warstw: Odwołanie i Diagramy warstw: Zalecenia.

Microsoft.VisualStudio.ArchitectureTools.Extensibility.Layer Modelu opisane w tym temacie jest elewacji w bardziej ogólnym Microsoft.VisualStudio.GraphModel modelu.Podczas pisania menu polecenia lub gest rozszerzenia, użyj Layer modelu.Podczas pisania warstwy rozszerzenia weryfikacji, jest łatwiejsza w użyciu GraphModel.

Transakcje

Podczas aktualizowania modelu, należy wziąć pod uwagę załączając zmian w ILinkedUndoTransaction.To grup zmian w jednej transakcji.Jeśli zmiany nie powiedzie się, cała transakcja zostanie wycofana.Jeśli użytkownik cofa zmianę, wszystkie zmiany zostaną cofnięte ze sobą.

Aby uzyskać więcej informacji, zobacz Porady: łączenie aktualizacji modeli za pomocą transakcji.

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

Zawierania

ILayer i ILayerModel mogą zawierać ILayers.

Warstwy (ILayer) i model warstwy (ILayerModel) mogą zawierać komentarze i warstwy.

Warstwy (ILayer) może znajdować się w modelu warstwy (ILayerModel) lub mogą być zagnieżdżone w innym ILayer.

Aby utworzyć komentarz lub warstwy, użycie tych metod tworzenia odpowiedniego kontenera.

Łączy zależności

Łącze zależności jest reprezentowany przez obiekt.Można go przejście w dowolnym kierunku:

ILayerDependencyLink łączy dwa ILayers.

Aby utworzyć łącze zależności, należy wywołać source.CreateDependencyLink(target).

Komentarze

Komentarze mogą znajdować się wewnątrz warstwy lub warstwy modelu, a także mogą być połączone z dowolnego elementu warstwy:

Komentarze można dołączyć do dowolnego elementu warstwy.

Komentarz mogą być połączone z dowolną liczbę elementów, w tym none.

Aby uzyskać komentarze, które są dołączone do elementu warstwy, należy użyć:

ILayerModel model = diagram.GetLayerModel(); 
IEnumerable<ILayerComment> comments = 
   model.Comments.Where(comment => 
      comment.Links.Any(link => link.Target == layerElement));
Informacje dotyczące przestrogiPrzestroga

Comments Właściwość ILayer pobiera komentarze, które wchodzą w skład ILayer.Serwer nie uzyska komentarze, które są połączone.

Utwórz komentarz wywołując CreateComment() na odpowiedni kontener.

Utwórz łącze przy użyciu CreateLink() na komentarz.

Elementy warstwy

Wszystkie typy elementu, który może być zawarty w modelu są elementami warstwy:

Zawartość diagramu warstwy jest ILayerElements.

Właściwości

Każdy ILayerElement ma słownik ciągu o nazwie Properties.Aby dołączyć dowolne informacje do dowolnego elementu warstwy, można użyć tego słownika.

Odwołuje się do artefaktów

Odwołanie artefaktu (ILayerArtifactReference) reprezentuje łącze między warstwami elementu projektu, takich jak pliku, klasa lub folderu.Gdy użytkownik tworzy lub dodaje do warstwy przeciągając elementy na warstwowego diagramu z Eksploratora rozwiązań lub Eksplorator architektury, tworzysz artefaktów.Mogą być połączone dowolną liczbę artefaktu odwołuje się do warstwy.

Każdy wiersz w Eksploratorze warstwy Wyświetla odwołania artefaktu.Aby uzyskać więcej informacji, zobacz Tworzenie diagramów warstwy na podstawie kodu.

Typy podmiotu zabezpieczeń i zajmujące się artefaktów odwołuje się do metody są następujące:

ILayerArtifactReference.Właściwość kategorii wskazuje, jakiego rodzaju artefaktu odwołuje się do, takich jak klasy, plik wykonywalny lub zestawu.Kategorie określa, jak identyfikator identyfikuje artefaktu docelowego.

CreateArtifactReferenceAsync tworzy odwołanie artefaktu z Project lub ProjectItem.To jest operacja asynchroniczna.W związku z tym zazwyczaj zawierają wywołanie zwrotne, które jest wywoływane w przypadku tworzenia zostanie zakończona.

Jednak można odróżnić odwołuje się do warstwy artefaktu z artefaktów w diagramy przypadków.

Kształty i Diagramy

Dwa obiekty są używane do reprezentowania poszczególnych elementów w modelu warstwy: ILayerElement, i IShape.IShape Reprezentuje pozycję i rozmiar kształtu na diagramie.W modelach warstwy każdy ILayerElement ma jeden IShape, i w każdym IShape na warstwie diagramu ma jeden ILayerElement.IShape Służy do modeli UML.W związku z tym co nie IShape zawiera element z warstwy.

W ten sam sposób ILayerModel jest wyświetlany na jednym IDiagram.

W kodzie niestandardowe polecenia lub obsługi gest, aby uzyskać bieżącego diagramu i bieżący wybór kształtów z DiagramContext importowania:

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żdy ILayerElement jest proponowana za pomocą IShape.

IShape i IDiagram również są używane do wyświetlania modeli UML.Aby uzyskać więcej informacji, zobacz Porady: wyświetlanie modelu na diagramach.

Zobacz też

Koncepcje

Dodawanie poleceń i gestów do diagramów warstw

Dodawanie walidacji niestandardowej architektury do diagramów warstw

Dodawanie właściwości niestandardowych do diagramu warstwy

Diagramy warstw: Odwołanie

Diagramy warstw: Zalecenia

Rozszerzanie diagramów i modeli UML