VB 带有参考脚本的脚本在 ScriptControl c# 中不起作用
VB Script with reference script is not working in 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);
但是当我尝试 运行 包含其他脚本引用的 VB 脚本 时,它不会在脚本控件 中执行并抛出错误。
通过
在脚本中引用其他脚本
!INC Local Scripts.Constants-VBScript
有没有办法在脚本控件中添加脚本的引用脚本?
Enterprise Architect 中的 VBscripts 有一些 "extensions" 在通过通用脚本主机执行时会出现问题。
- 包括:EA 使用语法
!INC <scriptGroup>.<ScriptName>
来包含其他脚本。然而,这是其他脚本解释器不知道的 EA 特定语法。为了避免这种情况,您可以将 include 语句替换为包含脚本的整个代码。
- 变量类型:在 EA 脚本中,您可以编写类似
Dim myVar as EA.Element
的内容,这在 EA 脚本编辑器中非常有用,因为它允许代码完成,但语法不为任何其他脚本解释器所知。这些类型声明应该被删除。
- 会话和存储库:在 EA 中,您可以使用会话和存储库
对象而不定义它。如果你想使用
ScriptControl 然后你必须将它们添加为对象。为了
存储库这可以使用
scriptController.AddObject("Repository", eaRepository);
有关完整的工作示例,请参阅 Github 上的 The Enterprise Architect Add-in Framework。
此代码从模型和 MDG 中读取脚本,处理包含并添加存储库对象。
它不处理变量类型和 Session 对象。
您好,我正在使用 c# 中的脚本控件执行 VB 脚本。 如果它是一个独立的脚本,那么使用下面的代码对我来说效果很好。
ScriptControl SC = new ScriptControl();
SC.Language = ScriptType;
SC.AddObject("Repository", RP);
SC.AddCode(scriptcontents);
Object[] runobject = { };
string result = SC.Run(ScriptName, runobject);
但是当我尝试 运行 包含其他脚本引用的 VB 脚本 时,它不会在脚本控件 中执行并抛出错误。 通过
在脚本中引用其他脚本!INC Local Scripts.Constants-VBScript
有没有办法在脚本控件中添加脚本的引用脚本?
Enterprise Architect 中的 VBscripts 有一些 "extensions" 在通过通用脚本主机执行时会出现问题。
- 包括:EA 使用语法
!INC <scriptGroup>.<ScriptName>
来包含其他脚本。然而,这是其他脚本解释器不知道的 EA 特定语法。为了避免这种情况,您可以将 include 语句替换为包含脚本的整个代码。 - 变量类型:在 EA 脚本中,您可以编写类似
Dim myVar as EA.Element
的内容,这在 EA 脚本编辑器中非常有用,因为它允许代码完成,但语法不为任何其他脚本解释器所知。这些类型声明应该被删除。 - 会话和存储库:在 EA 中,您可以使用会话和存储库
对象而不定义它。如果你想使用
ScriptControl 然后你必须将它们添加为对象。为了
存储库这可以使用
scriptController.AddObject("Repository", eaRepository);
有关完整的工作示例,请参阅 Github 上的 The Enterprise Architect Add-in Framework。
此代码从模型和 MDG 中读取脚本,处理包含并添加存储库对象。
它不处理变量类型和 Session 对象。