C# 企业架构师:Package.Elements.count是负值吗?
在EA中,我通过darg和drop将30000多个元素从一个包转移到另一个包。 现在,当我尝试使用以下方法检查目标包的计数时,请使用c#addin:C# 企业架构师:Package.Elements.count是负值吗?,c#,enterprise-architect,C#,Enterprise Architect,在EA中,我通过darg和drop将30000多个元素从一个包转移到另一个包。 现在,当我尝试使用以下方法检查目标包的计数时,请使用c#addin: package.Elements.Count 它将以-32101的形式出现。 这怎么可能 我有三种类型的元素,有三种不同的刻板印象。如何获取每种元素类型的范围(开始索引和结束索引) 我尝试使用以下方法获取每种类型元素的数量: for (short i = 0; i < 0-package.Elements.Count; i++)
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;
}
}
for(短i=0;i<0-package.Elements.Count;i++)
{
if((package.Elements.GetAt(i.Stereotype)==“实现数据类型”)
{
执行计数=执行计数+1;
}
else if((package.Elements.GetAt(i.Stereotype)==“实现数据类型元素”)
{
元素计数=元素计数+1;
}
else if((package.Elements.GetAt(i.Stereotype)==“Sw数据定义道具”)
{
sw_计数=sw_计数+1;
}
}
但EA会停止对此作出反应吗?
另外,如何找到每种类型元素的起始索引和结束索引?A使用16位保存其值,并且可以具有-32768到32767的值
不幸的是,EA使用了一个简短的返回包和元素计数,因此一个包最多可以包含32767个包或元素。之后,它将滚动到-32768
从外观上看,这是EA SDK的一个限制
解决办法
- 您可以将元素分组到子包中,每个子包中包含30000个元素
- 您可以将EA文件导出为XML并在XML中工作