代码之家  ›  专栏  ›  技术社区  ›  Dah Sra

带有引用脚本的VB脚本在ScriptControl c中不工作#

  •  0
  • Dah Sra  · 技术社区  · 8 年前

    您好,我正在使用c#中的脚本控件执行VB脚本。 如果它是一个独立的脚本,那么使用下面的代码对我来说效果很好。

                ScriptControl SC = new ScriptControl();
                SC.Language = ScriptType;
                SC.AddObject("Repository", RP);
                SC.AddCode(scriptcontents);
                Object[] runobject = { };
                string result = SC.Run(ScriptName, runobject);
    

    但是当我试图运行VBScript时 包含其他脚本的引用,然后它不会在脚本控件中执行 并抛出错误。 通过引用脚本中的其他脚本

    !INC本地脚本。常数VBScript

    有没有办法在脚本控件中添加脚本的引用脚本?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Geert Bellekens    8 年前

    Enterprise Architect中的VBScript有几个“扩展”,在通过通用脚本主机执行时会出现问题。

    • 包括:EA使用语法 !INC <scriptGroup>.<ScriptName> 包括其他脚本。然而,这是其他脚本解释器不知道的EA特定语法。为了避免这种情况,可以将include语句替换为包含脚本的整个代码。
    • 变量类型:在EA脚本中,您可以编写如下内容 Dim myVar as EA.Element 这在EA脚本编辑器中非常有用,因为它允许代码完成,但任何其他脚本解释器都不知道语法。应删除这些类型声明。
    • 会话和存储库:在EA中,您可以使用会话和存储库 对象而不定义它。如果要使用 ScriptControl然后您必须将其添加为对象。对于 存储库这可以使用 scriptController.AddObject("Repository", eaRepository);

    有关完整的工作示例,请参阅 The Enterprise Architect Add-in Framework 在Github上。
    这段代码从模型和MDG中读取脚本,处理include,并添加Repository对象。
    它不处理变量类型和会话对象。

    推荐文章