Infolog是Dynamics AX中类Info的别名吗?

时间:2012-11-08 18:56:29

标签: axapta dynamics-ax-2012

我想了解 Infolog 在Dynamics AX中的运作方式。我知道以下代码将在infolog窗口中显示文本。

  

info(“Hello World!”);

我知道信息全局类的静态方法,因此只需调用名称即可调用该方法,而无需实际指定 {{ 1}}

在查看 Global 类中的方法 info 时,我注意到它调用了Global::。右键单击infolog.add并选择选项add,即可转到课程信息中的方法添加

如果添加方法所在的类名为 Info ,那么如何在Lookup Definition中使用名称 Infolog调用它

我能得出的唯一合乎逻辑的结论是 Infolog 是类 Info 的别名。如果这是正确的,那么在AOT(应用程序对象树)中定义了这个别名?

我搜索了AOT,但发现了对 Infolog 一词的多个引用,但我找不到任何与应用程序系统直接相关的内容 class。

2 个答案:

答案 0 :(得分:1)

我在Microsoft Dynamics社区论坛上发布的同一问题的回复帮助我更好地理解了代码。

Is Infolog an alias to the class Info? - Response on Microsoft Dynamics Community forum

下面显示的代码来自静态方法Global::info()。我没注意到使用对象 add 调用方法 infolog 实际上是一个实例方法而不是静态方法。

client server static Exception info(
    SysInfoLogStr txt, 
    URL helpUrl = '', 
    SysInfoAction _sysInfoAction = null)
{
    return infolog.add(Exception::Info, 
        getPrefix()+txt, 
        helpUrl, 
        _sysInfoAction, false);
}

换句话说,infolog是类Info的一个实例。在查看课程 Info 后,我找到了startup方法。我保留了一个断点来调试代码,发现每当打开AX客户端时都会调用此方法。此方法又调用另一个名为initBrowser的方法。在 initBrowser 中,以下代码似乎使用Windows句柄初始化Infolog的全局实例。

this.initializeInfolog(this.browser().hWnd());

上面的menthod initializeInfolog存在于System类xInfo中,它是Info的父类。由于我无法查看类 xInfo ,我认为这是创建名为 Info 的类infolog的实例的地方。

答案 1 :(得分:1)

我认为这不是别名。我认为这是在内核级别定义的全局变量。

编辑:我在回答时回答了你的问题...