Welcome

首页 / 软件开发 / .NET编程技术 / Visual Studio DSL入门 8---创建状态机元数据模型

Visual Studio DSL入门 8---创建状态机元数据模型2011-02-09 博客园 孤独侠客首先,按照第三节创建一个Minimal Lanauge模板项目,打开DslDefinition.dsl文件:

1. 把根域类ExampleModel的名称修改StateMachine.同时签入关系ExampleModelHasElements也会自动重命名为StateMachineHasElements.

2. 修改域关系StateMachineHasElements左侧的域角色Elements的属性名(Property Name 注意不是修改Name--域角色名)改成States.同时签入关系StateMachineHasElements自动更新为 StateMachineHasStates. [你也可以直接在域角色上点击修改,因为图的域角色上显示的是属性名而非角色名).

3. 修改域关系StateMachineHasStates的右侧已经更名的域角色StateMachine,修改属性Name为State.[注意,这里修改的是Name,而不是Property Name].

4. 修改域类ExampleElement的Name为State.

注意这里是基于模板项目进行更改,当然,你也可以删除这些自动生成的域类而是全新重新添加.另外或许你对这里的属性名(property name)和域角色名(name)有些迷惑,请看前面的详细区分.

其实到这一步我们已经完成了状态机与状态之间元数据的dsl描述,接下来我们来完成状态之间的关系.

5.我们可以看到,图中的State与State之间已经是引用关系,这正是我们想要的,我们修改关系StateReferencesTargets为Transition.

6.修改Targets为属性名为Successors,域角色名为Predecessor.

7.修改Sources的属性名为Predecessors,域角色名为Successor.

同样,如果不是基于修改,而是重新添加域类也是完全可以的.

我们接下来给域类添加一些属性: