方法: プログラム コードで UML モデルを読み取る
UML API を使用して、UML モデルおよび 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 を使用することにより、このトピックで説明する方法よりも高い保全性と柔軟性を確保して、アプリケーション内のモデルや要素を参照することができます。 同じモデル、または別のモデル内の任意の要素をリンクするための、標準的な方法を使用できます。 詳細については、「方法: UML モデルを他のモデルおよびツールと統合する」を参照してください。
Visual Studio API を使用して、ユーザー インターフェイスでモデルおよび図を開くこともできます。 詳細については、「方法: Visual Studio API を使用して UML モデルを開く」を参照してください。
スタンドアロン アプリケーション
前のセクションの例は、Visual Studio 拡張機能で動作します。 スタンドアロン アプリーションでモデルを読み込むこともできますが、Visual Studio プロジェクトにいくつかの参照を追加する必要があります。
注意
スタンドアロン アプリケーションでモデルを読み込む方法については、製品の今後のバージョンで変更される可能性があります。 現在のバージョンで使用できる機能のいくつかは、将来のバージョンでは利用できなくなる可能性があります。
スタンドアロン アプリケーションのモデルを読み込むための参照を追加するには
ソリューション エクスプローラーで、アプリケーションのビルドに使用するプロジェクトを右クリックし、[プロパティ] をクリックします。 プロパティ エディターの [アプリケーション] タブで、[ターゲット フレームワーク] を .NET Framework 4 に設定します。
UML モデルにアクセスするために必要な .NET 参照を追加します。
Microsoft.VisualStudio.Uml.Interfaces.dll
Microsoft.VisualStudio.ArchitectureTools.Extensibility.dll
前のセクションで示した参照に加えて、\Program Files\Microsoft Visual Studio 10.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