带有参考脚本的VB脚本在ScriptControl C#中不起作用



嗨,我正在使用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 时,它不在脚本控制中执行并引发错误。通过

在脚本中引用其他脚本

有什么方法可以在脚本控制中添加脚本的参考脚本?

企业架构师中的vbscripts有一些"扩展",这些"扩展"在通过通用脚本主机执行时有问题。

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

有关一个完整的工作示例,请参见GitHub上的Enterprise Architect加载项框架。
该代码读取模型和MDG的脚本,处理包含并添加存储库对象。
它不处理变量键入和会话对象。

最新更新