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