gpt4 book ai didi

c# - 如何在 MS Dynamics AX 2012 中使用 X++ 列表编码 C# 列表

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:37 25 4
gpt4 key购买 nike

我有一个 MS Dynamics AX 2012 项目,我正在使用 .Net 互操作。在名为 Databasestatic class 中有一个 C# 方法:

 public static List<String> GetAllDatabases(string dataSource)

引用此程序集后,我可以在 X++ 中执行:

ADOMD.ADOMD.Model.Database::GetAllDatabases();

但我无法读取它返回的字符串列表。我想使用类似的东西:

List databaNameCollection = new List( Types::String ); 
;

databaNameCollection = ADOMD.ADOMD.Model.Database::GetAllDatabases();

但它抛出了一个错误:

Error executing code:  (object) has no valid runable code in method 'GetSID'.

我该怎么做?

--------已编辑--------

我找到了这篇文章:

http://blogs.msdn.com/b/x/archive/2010/01/19/traversing-elements-in-an-ienumerable-from-x.aspx

但那是在 2010 年,可能是为了 AX 2009,我尝试分配:

ClrObject enumerator; 
str theValue;
;

enumerator = ADOMD.ADOMD.Model.Database::GetAllDatabases();
while (enumerator.MoveNext())
{
theValue = enumerator.get_Current();
print theValue;
}

GetallDatabases 方法正在与另一个 .Net 项目一起使用,它返回 10 个对象,但在 X++ 代码中,没有返回任何内容。

谢谢

最佳答案

要回答有关 X++ 中的 .NET 类型以及 get_{x}set_{x} 的问题:

.NET 属性在 X++ 中显示为方法。比如下面C#中的get & set属性

string Name {get;set;}

将在 X++ 中显示为

string get_Name();
void set_Name(str value);

基本上,C# 属性只是语法糖。 C# 编译器将为每个 get 属性创建一个 get_{x} 方法,为每个 set 属性创建一个 set_{x}。

在你的例子中,如果你想访问 cubeDef 对象中的 Name 属性,你必须在 X++ 中编写如下内容:

info(cubeDef.get_Name());

关于c# - 如何在 MS Dynamics AX 2012 中使用 X++ 列表编码 C# 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10782993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com