我正在使用C#应用程序做一些工作,并通过服务将结果发回AX。
我在AX中创建了一些类,并在C#中使用它们的实例,然后在经典数组的帮助下将对象发回。
在AX中,我收到了System.Collections.ArrayList
中的内容,这是我的问题:
如何迭代此集合并检查对象类型?
for (...)
{
if (arr[i] is SalesLineCSharp)
{
}
else if (arr[i] is SalesTableCSharp)
{
}
//etc....
}
像is
或as
?
我刚刚做了一个例子并尝试了这个......
info(strFmt("%1", classId2Name(classIdGet(arr.get_Item(i)))));
对于自定义类型,我得到了类的名称,对于字符串和整数,我得到了CLRObject,但这看起来很糟糕。
有没有更简洁的方法来实现这一目标?
答案 0 :(得分:4)
从AX 2012开始,实际上有X ++中的强制转换操作符 - 请参阅MSDN上的here。
所以你应该可以做一些像
这样的事情Object tmpItem;
...
tmpItem = arr.get_Item(i);
if (tmpItem is SalesLineCSharp)
{
...