在 DSL 之间共享类

在 Visual Studio 可视化和建模 SDK 中,你可以创建可导入其他 DSL 的不完整 DSL 定义。 此方法使你可以对类似模型的常见部分进行因式分解。

注意

“文本模板转换”组件将作为“Visual Studio 扩展开发”工作负载的一部分自动安装 。 还可以从 Visual Studio 安装程序的“SDK、库和框架”类别下的“单个组件”选项卡进行安装 。 从“单个组件”选项卡安装“建模 SDK”组件 。

创建 DSL 项目

  1. 创建新的 DSL 项目,并选择“DSL 库”解决方案模板。

    将使用空模型创建单个 DSL 项目。

  2. 可以添加域类、关系、形状等。 库中的元素不必构成单个嵌入树。 若要定义导入程序可以使用的关系,请创建两个域类并创建两者之间的关系。

    请考虑将域类的“继承修饰符”设置为 Abstract

  3. 可以添加在 DSL 资源管理器中定义的元素,例如连接构建器。

  4. 可以添加需要更多代码的自定义项,如验证约束。

  5. 选择“转换所有模板”。

  6. 生成项目。

  7. 将 DSL 分发给其他人使用时,必须同时提供已编译的程序集 (DLL) 和文件 DslDefinition.dsl。 可以在 Dsl\bin* 下面的文件夹中查找已编译的程序集。

导入 DSL 库

  1. 在其他 DSL 定义中,在“DSL 资源管理器”中右键单击 DSL 的根类,然后选择“添加新的 DslLibrary 导入”。

  2. 在“属性”窗口中,设置该库的“文件路径”。 可以指定相对或绝对路径。

    导入的库在 DSL 资源管理器中显示为只读模式。

  3. 可以使用导入的类作为基类。 在导入 DSL 中创建域类,并在属性窗口中,将“基类”设置为导入的类。

  4. 选择“转换所有模板”。

  5. 向 DSL 项目添加对 DSL 库项目生成的程序集 (DLL) 的引用。

  6. 生成解决方案。