Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 如何在DSL T4模板中引用图表?_Visual Studio_Diagram_Dsl - Fatal编程技术网

Visual studio 如何在DSL T4模板中引用图表?

Visual studio 如何在DSL T4模板中引用图表?,visual-studio,diagram,dsl,Visual Studio,Diagram,Dsl,谷歌不会来拯救我,我只是知道这是一个完美的地方 我正在为DSL编写一个自定义DirectiveProcessor,我希望能够从T4模板中访问图表 在我的DirectiveProcessor中,我使用(wait…)LoadModelAndDiagram(…)加载了域模型和图表 因此,现在该图已加载到存储中的默认分区中,但我无法在以后解决如何解析对它的引用 有人能指路吗 好吧,在做了大量的进一步工作之后,我决定不需要从**自定义DirectiveProcessor**中访问我的图表** 我仍然有一个

谷歌不会来拯救我,我只是知道这是一个完美的地方

我正在为DSL编写一个自定义DirectiveProcessor,我希望能够从T4模板中访问图表

在我的DirectiveProcessor中,我使用(wait…)LoadModelAndDiagram(…)加载了域模型和图表

因此,现在该图已加载到存储中的默认分区中,但我无法在以后解决如何解析对它的引用


有人能指路吗

好吧,在做了大量的进一步工作之后,我决定不需要从**自定义DirectiveProcessor**中访问我的图表**

我仍然有一个定制的DirectiveProcessor,因为标准生成的DirectiveProcessor在加载域模型时不会加载现有的图表

让一个定制的DirectiveProcessor同时加载图表和模型非常简单。您可以对标准生成的DirectiveProcessor基类进行子类化并重写:

protected override bool LoadDiagramData
{
    get
    {
        return true;
    }
}
现在,我们已经加载了这个图,所以回到最初的问题,我们如何访问它?像这样:

using (Transaction t = partition.Store.TransactionManager
           .BeginTransaction("MyTxn", true))
{
    MyDslDiagram diagram = partition.ElementDirectory
        .FindElements<MyDslDiagram>(true).SingleOrDefault();

    /*
     * Now, do stuff with your diagram.
     *
     */
}
使用(事务t=partition.Store.TransactionManager
.BeginTransaction(“MyTxn”,正确))
{
MyDslDiagram diagram=partition.element目录
.FindElements(true).SingleOrDefault();
/*
*现在,用你的图表做一些事情。
*
*/
}
现在,如果您加载了一个图表,那么这段代码就可以正常工作。否则,该图将返回为null,在这种情况下,我们要么显式加载该图,要么动态创建一个

在这里,我不想谈这个。也许等我睡过觉的时候再开始吧