目前,我使用以下代码:
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#中做什么?
答案 0 :(得分:2)
这取决于Code_generator::tableNames()
返回的内容。
肯定不会返回ArrayList
但很可能不会返回AX List
,而且两者不相同且无法投放。
一种方法是让AX返回一个容器then access that。
否则,您可以使用AxaptaObject
直接访问AXList
AxpataObject ax_cont = ax.CallStaticClassMethod("Code_Generator", "tableNames");
AxpataObject ax_it = ax_cont.Call("getEnumerator");
while (ax_it.Call("moveNext"))
// Hope you get it