嗨,我正在使用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的脚本,处理包含并添加存储库对象。
它不处理变量键入和会话对象。