2

从我创建的引用 dll 调用方法时,我在 AX 2009 的自定义项目中收到一条消息。消息是错误执行代码对象未初始化。我的项目编译成功,并且 AOT 中引用了 dll。

尝试执行 hostServices.Copy() 时发生在 MyClassExecuteCopy.copy() 中的错误

谁能看到我为什么会收到此消息的任何问题?

我缩短了这个例子的代码如下:

//classDeclaration
class MyClassExecute extends RunbaseBatch
{
    MyDll.Win.HostServices                    hostServices;
    MyDll.Data.InputParameters                inputParams;
    MyDll.Test.Data.ResultSummary           resultSummary;
}

//MyClassExecute.initLiabraries
public void initLiabraries()
{
    ;
    new InteropPermission(InteropKind::ClrInterop).assert();

    hostServices = new MyDll.Win.HostServices();
    inputParams = new MyDll.Data.InputParameters();

    CodeAccessPermission::revertAssert();
}

////////////////////////////////////////////

class MyClassExecuteCopy extends MyClassExecute
{
}

//MyClassExecuteCopy.copy   - Exception occurs on resultSummary line with "Error executing code: copySomething     object not initialized"
void copy()
{
    new InteropPermission(InteropKind::ClrInterop).assert();

    //Exception occurs when executing line below with "Error executing code: copySomething object not initialized"
    resultSummary = hostServices.Copy();

    CodeAccessPermission::revertAssert();
}

//////////////////////////////////////////////

class CreateCopy extends Runbase
{
}

//CreateCopy.copySomething
public client server static void copySomething()
{
    MyClassExecuteCopy            myClassExecuteCopy;
    ;
    new InteropPermission(InteropKind::ClrInterop).assert();
    myClassExecuteCopy.initLiabraries();
    myClassExecuteCopy.copy();
    CodeAccessPermission::revertAssert();
}
4

1 回答 1

1

发现要通过数据初始化的问题。

结果,hostServices.Copy() 没有正确的值,或者导致 dll 中出现错误,或者没有返回任何一种方式,这是我在 AX 中收到的错误消息的结果。

在更正按预期处理相同调用的数据之后。

于 2013-02-28T19:15:33.280 回答