Практическое руководство. Чтение модели UML в программном коде

Можно загрузить модель UML и ее схемы, используя UML API.

Чтение модели в программном коде

Чтобы получить доступ к содержимому модели, не отображая ее в окне 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 позволяет ссылаться на модели и элементы внутри этих моделей во многих приложениях, обеспечивая большую надежность и гибкость, чем при использовании описанных в этом разделе методов.Шина предоставляет стандартный метод создания ссылок между произвольными элементами в одной модели или разных моделях.Дополнительные сведения см. в разделе Практическое руководство. Интеграция моделей UML с другими моделями и средствами.

Кроме того, воспользовавшись API-интерфейсом Visual Studio можно открывать модели и схемы в пользовательском интерфейсе.Дополнительные сведения см. в разделе Практическое руководство. Открытие модели UML с помощью API Visual Studio.

Автономные приложения

Пример из предыдущего подраздела можно выполнить в расширениях Visual Studio.Можно прочитать модель в отдельном приложении, однако необходимо добавить несколько ссылок на проект Visual Studio.

ПримечаниеПримечание

Вероятно, способы прочтения модели в отдельном приложении будут изменены в последующих выпусках продукта.Некоторые функции, доступные в текущей версии, могут оказаться недоступными в последующих выпусках.

Добавление ссылок для прочтения модели в отдельном приложении

  1. В обозревателе решений щелкните правой кнопкой мыши проект, в котором выполняется построение приложения, и щелкните Свойства.В редакторе свойств на вкладке Приложение задайте для параметра Требуемая версия .NET Framework значение .NET Framework 4.

  2. Добавьте ссылки .NET, необходимые для осуществления доступа к моделям UML, например:

    • 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