共用方式為


HOW TO:讀取程式碼中的 UML 模型

您可以使用 UML API,來載入 UML 模型及其圖表。

讀取程式碼中的模型

若要存取模型的內容而不將其顯示於 Visual Studio 視窗中,請使用 ModelingProject.LoadReadOnly()。

例如:

using Microsoft.VisualStudio.Uml.Classes; 
               // for IElement
using Microsoft.VisualStudio.ArchitectureTools.Extensibility; 
               // for ModelingProject
using Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml;
               // for IModelStore
... 
string projectPath = @"C:\MyProjectFolder\MyProject.modelproj";
using (IModelingProjectReader projectReader =
           ModelingProject.LoadReadOnly(projectPath))
{
   IModelStore store = projectReader.Store;
   foreach (IClass umlClass in store.AllInstances<IClass>())
   { 
       ...
   }
}

如果您要讀取圖表中的圖案,您必須先讀取專案,再讀取圖表。

例如:

using Microsoft.VisualStudio.ArchitectureTools.Extensibility.Presentation; 
                             // for IDiagram
...
foreach (string diagramFile in projectReader. DiagramFileNames)
{ 
  IDiagram diagram = projectReader.LoadDiagram(diagramFile);
  foreach (IShape<IElement> shape 
         in diagram.GetChildShapes<IElement>())
  { ... }
}

替代方法

就許多應用程式而言,Visual Studio Modelbus 都可讓您在參考模型及其內含之項目時,享有比本主題中說明的方法更為優異的健全性和彈性。它可提供在任意項目間相互連結的標準方法 (在相同或不同模型中)。如需詳細資訊,請參閱HOW TO:整合 UML 模型與其他模型和工具

您也可以使用 Visual Studio API,在使用者介面中開啟模型和圖表。如需詳細資訊,請參閱HOW TO:使用 Visual Studio API 開啟 UML 模型

獨立應用程式

上一節中的範例可在 Visual Studio 擴充功能中運作。您可以讀取獨立應用程式中的模型,但您必須在 Visual Studio 專案中加入參考。

注意事項注意事項

在新版產品中,有關如何讀取獨立應用程式之模型的詳細資訊可能會有所變更。某些在目前版本中可存取的功能,在未來的版本中可能無法使用。

若要加入參考以讀取獨立應用程式中的模型:

  1. 在 [方案總管] 中,以滑鼠右鍵按一下建置應用程式的專案,然後按一下 [屬性]。在屬性編輯器中,將 [應用程式] 索引標籤中的 [目標 Framework] 設為 .NET Framework 4

  2. 加入您存取 UML 模型所需的 .NET 參考,通常為:

    • Microsoft.VisualStudio.Uml.Interfaces.dll

    • Microsoft.VisualStudio.ArchitectureTools.Extensibility.dll

  3. 除了前幾節所列的參考以外,請從 \Program Files\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies 加入下列專案參考:

    • Microsoft.VisualStudio.Uml.dll

    • Microsoft.VisualStudio.TeamArchitect.ModelStore.Dsl.dll

    如果您要讀取應用程式中的圖表,則還需要下列參考:

    • Microsoft.VisualStudio.TeamArchitect.ActivityDesigner.Dsl.dll

    • Microsoft.VisualStudio.TeamArchitect.ComponentDesigner.Dsl.dll

    • Microsoft.VisualStudio.TeamArchitect.LogicalClassDesigner.Dsl.dll

    • Microsoft.VisualStudio.TeamArchitect.SequenceDesigner.Dsl.dll

    • Microsoft.VisualStudio.TeamArchitect.UseCase.Dsl.dll

請參閱

概念

使用 UML API 進行程式設計

擴充 UML 模型與圖表