我在Jscript中编写了代码,用于在EA项目浏览器中扫描图表,然后创建有关现有元素的元素列表。代码没有任何问题。目前,当我尝试将我的代码(Jscript)转换为C#以创建一个自定义的Enterprise Architect加载项时,我遇到了问题。
这是我在Jscript中的代码的一部分:
EA.Package theModel;
theModel = Repository.Models.GetAt( 0 );
// Iterate through all views (top level packages) in the model
var viewEnumerator = new Enumerator( theModel.Packages );
while ( !viewEnumerator.atEnd() )
{
EA.Package currentView;
currentView = viewEnumerator.item();
// Add the name of this view to the output window
MessageBox.Show( currentView.Name );
// Iterate through all diagrams in this view
viewEnumerator.moveNext();
}
这是c#中的转换代码:
var viewEnumerator = new Enumerator( theModel.Packages );
但是,我遇到以下问题:
dict
错误是:
类型或命名空间名称'枚举器'找不到(你错过了使用指令或汇编引用吗?)
实际上,我不知道如何在C#
中创建类似的内容任何建议
答案 0 :(得分:1)
您可以使用foreach
循环代替Enumerator
EA.Package theModel;
theModel = Repository.Models.GetAt( 0 );
// Iterate through all views (top level packages) in the model
foreach( EA.Package currentView in theModel.Packages )
{
// Add the name of this view to the output window
MessageBox.Show( currentView.Name );
}
确保键入currentView(并且不要使用var
),因为EA.Collection不是强类型的。