2
从我创建的引用dll中调用方法时,我在AX 2009中的自定义项目中收到消息。该消息是错误执行代码对象未初始化。我有我的项目编译成功,并在AOT中引用dll。在MyClassExecuteCopy.copy发生在AX 2009中执行代码对象时未执行初始化时出错
错误()试图执行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();
}
在引用的DLL中,你能跟踪copySomething对象吗?我的第一个直觉是,你需要调用MyDll.Win.HostServices中的其他一些功能来使Copy()正常工作,类似于你需要在AX中调用initLiabraries。 – kingofzeal 2013-02-28 16:48:50
我被要求研究这个问题,没有访问'复制'内的代码,但我追溯了过程中使用的数据,发现它是无效的,导致复制到错误或不返回任何内容。感谢您的回应。 – Brendan 2013-02-28 19:17:59