Ошибка выполнения объекта кода, не инициализированного в AX 2009

Я получаю сообщение в своем пользовательском проекте в AX 2009 при вызове метода из созданной мной dll, на которую ссылаются. Сообщение «Ошибка выполнения объекта кода не инициализировано». Мой проект успешно скомпилирован, и на dll есть ссылка в AOT.

Ошибка возникает в MyClassExecuteCopy.copy() при попытке выполнить hostServices.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();
}

person Brendan    schedule 28.02.2013    source источник
comment
Можете ли вы проследить объект copySomething в упомянутой DLL? Мой первый инстинкт заключается в том, что вам нужно вызвать что-то еще в MyDll.Win.HostServices для правильной работы Copy(), аналогично тому, как вам нужно вызвать initLiabraries в AX.   -  person kingofzeal    schedule 28.02.2013
comment
меня попросили исследовать проблему, и у меня нет доступа к коду в «копии», но я проследил данные, используемые в процессе, и обнаружил, что они недействительны, что приводит к ошибке копирования или ничего не возвращает. Спасибо за ответ.   -  person Brendan    schedule 28.02.2013


Ответы (1)


Обнаружена проблема, которая должна быть инициализирована данными.

В результате hostServices.Copy() не имел правильных значений и либо приводил к ошибке в dll, либо ничего не возвращал в любом случае, это было результатом сообщения об ошибке, которое я получал в AX.

После исправления данных тот же вызов обработался, как и ожидалось.

person Brendan    schedule 28.02.2013