1

有谁知道如何扩展,即向 Visual Studio 中的实体设计器添加功能?

例如,我想在设计器上右键单击实体的属性,并在上下文菜单上有一个新选项,允许我做任何我想做的事情。

4

1 回答 1

2

VS 2008 SP1 中的实体设计器没有很多可扩展性挂钩。您可以做的是利用 Visual Studio 可扩展性(VSIP,现在称为 VSX):

  1. 添加您自己的上下文菜单
  2. 使用IVsMonitorSelection 获取当前选择,从中可以获取 ISelectionContainer。
  3. 如果用户选择了图表表面,则可以将 ISelectionContainer 转换为DiagramDocView。这是“DSL”的一部分,它是实体设计器用于其设计器表面的框架。
  4. 从这里您可以在 DiagramDocView 中做很多事情。DiagramDocView.CurrentDiagram 将为您提供图表对象。您可以调用 Diagram.NestedChildShapes 来获取图表中的所有形状。要更改图表,您必须创建 DSL 事务并对事务中的形状进行编辑。这只是实体设计器之上的另一个层次,一切都将得到正确处理:

    using (Transaction tx = store.TransactionManager.BeginTransaction(txText))
    {
       // do something, such as creating an EntityTypeShape;
       tx.Commit();
    }
    

VS 2010 中的实体设计器将有更多的可扩展性挂钩,允许您通过属性窗口或向导来影响模型。新的“模型优先”功能中的新可扩展性工作基本上允许您以可组合的方式从 Visual Studio 中的模型生成任何内容。

于 2009-09-30T03:50:07.530 回答