将列表返回给.NET Business Connector

时间:2013-01-24 07:01:11

标签: c# axapta dynamics-ax-2009 x++ business-connector

目前,我使用以下代码:

        Axapta ax = new Axapta();
        string tableName;
        ArrayList ax_cont = null;
        ax.Logon(null, null, null, null);
        try
        {
            ax_cont = (ArrayList)ax.CallStaticClassMethod("Code_Generator", "tableNames");
            for (int i = 1; i <= ax_cont.Count; i++)
            {
                tableName = ax_cont[i].ToString();
                tablesCB.Items.Add(tableName);
            }    
        }
        catch { }

但我得到了一个类型转换异常。

当一个列表从ax动态返回为AxpataObject时,我需要在C#中做什么?

1 个答案:

答案 0 :(得分:2)

这取决于Code_generator::tableNames()返回的内容。

肯定不会返回ArrayList但很可能不会返回AX List,而且两者不相同且无法投放。

一种方法是让AX返回一个容器then access that

否则,您可以使用AxaptaObject

直接访问AX List
AxpataObject ax_cont = ax.CallStaticClassMethod("Code_Generator", "tableNames");
AxpataObject ax_it = ax_cont.Call("getEnumerator");
while (ax_it.Call("moveNext"))
     // Hope you get it