Enterprise Architect:Package.Elements.count 是否定的?

Enterprise Architect: Package.Elements.count is coming as negative?

我在 EA 中通过 darg 和 drop 将 30,000 多个元素从一个包转移到另一个包。 当我尝试使用以下方法检查目标包的计数时,现在使用 c# 插件:

package.Elements.Count

它将以 -32101 的形式出现。 怎么可能。

我有三种具有三种不同刻板印象的元素。如何获取每种类型元素的范围(起始索引-结束索引)?

我正在尝试使用以下方法获取每种元素的数量:

 for (short i = 0; i < 0-package.Elements.Count; i++)
                    {
                        if ((package.Elements.GetAt(i).Stereotype)=="Implementation-Data-Type")
                        {
                            impl_count=impl_count+1;
                        }
                        else if ((package.Elements.GetAt(i).Stereotype)=="Implementation-Data-Type-Element")
                        {
                            ele_count=ele_count+1;
                        }
                        else if ((package.Elements.GetAt(i).Stereotype)=="Sw-Data-Def-Props")
                        {
                            sw_count = sw_count+1;
                        }
                    }

但 EA 停止对此做出回应? 另外,如何找到每种类型元素的开始和结束索引。?

一个short使用16位来保存它的值,可以有-32,768到32,767的值。

不幸的是,EA 使用了 return 包和元素计数的缩写,因此一个包最多可以包含 32,767 个包或元素。之后,它将滚动到-32,768。

从外观上看,这是 EA SDK 的一个限制。

解决方法

  • 您可以将元素分组到子包中,每个子包中包含 30,000 个元素。
  • 您可以将 EA 文件导出到 XML 并在 XML 中工作。