3

我正在使用 C# 应用程序做一些工作并通过服务在 AX 中发回结果。

我在 AX 中创建了一些类并在 C# 中使用它们的实例,然后在经典数组的帮助下将对象发回。

在 AX 中,我收到了 a 中的内容,System.Collections.ArrayList我的问题来了:

如何遍历此集合并检查对象类型?

for (...)
{
   if (arr[i] is SalesLineCSharp) 
   {
   } 
   else if (arr[i] is SalesTableCSharp)
   {
   }
   //etc....
}

isor的东西as

我刚刚做了一个例子并尝试了这个..

info(strFmt("%1", classId2Name(classIdGet(arr.get_Item(i)))));

实际上,对于自定义类型,我得到了类的名称,对于字符串和整数,我得到了 CLRObject,但这看起来很糟糕。

有没有更清洁的方法来实现这一点?

4

1 回答 1

4

从 AX 2012 开始,实际上在 X++ 中有强制转换运算符 - 请参阅MSDN 上的此处

所以你应该能够做类似的事情

Object tmpItem;
...
tmpItem = arr.get_Item(i);
if (tmpItem is SalesLineCSharp)
{
    ...
于 2016-07-26T09:35:42.123 回答