Поделиться через


Совместное использование классов между DSLs

В пакете SDK для визуализации и моделирования Visual Studio можно создать неполное определение DSL, которое можно импортировать в другой DSL. Этот подход позволяет учитывать общие части аналогичных моделей.

Примечание.

Компонент Text Template Transformation (Преобразование текстовых шаблонов) автоматически устанавливается как часть рабочей нагрузки разработки расширений Visual Studio. Его также можно установить на вкладке Отдельные компоненты Visual Studio Installer в категории Пакеты SDK, библиотеки и платформы. Установите компонент Пакет SDK для моделирования со вкладки Отдельные компоненты.

Создание проекта DSL

  1. Создайте проект DSL и выберите шаблон решения библиотеки DSL.

    Создается один проект DSL с пустой моделью.

  2. Вы можете добавлять классы домена, связи, фигуры и т. д. Элементы в библиотеке не должны формировать одно дерево внедрения. Чтобы определить связь, которую могут использовать импортеры, создайте два класса домена и создайте связь между ними.

    Рекомендуется задать модификатор наследования классов Abstractдомена.

  3. Вы можете добавить элементы, определенные в Обозреватель DSL, например Подключение builders.

  4. Можно добавить настройки, требующие большего объема кода, например ограничений проверки.

  5. Выберите "Преобразовать все шаблоны".

  6. Выполните сборку проекта.

  7. При распространении DSL для других пользователей необходимо предоставить как скомпилированную сборку (DLL), так и файл DslDefinition.dsl. Скомпилированную сборку можно найти в папке в разделе Dsl\bin*.

Импорт библиотеки DSL

  1. В другом определении DSL в DSL Обозреватель щелкните правой кнопкой мыши корневой класс DSL, а затем выберите "Добавить новый импорт dslLibrary".

  2. В окне "Свойства" задайте путь к файлу библиотеки. Можно использовать относительный или абсолютный путь.

    Импортированная библиотека отображается в Обозреватель DSL в режиме только для чтения.

  3. Импортированные классы можно использовать в качестве базовых классов. Создайте класс домена в импорте DSL и в окно свойств задайте базовый класс импортированным.

  4. Выберите "Преобразовать все шаблоны".

  5. Добавьте в проект DSL ссылку на сборку (DLL), созданную проектом библиотеки DSL.

  6. Постройте решение.