|
29.02.2012, 16:13 | #1 |
Британский учённый
|
CLR в пакетной обработке
Добрый день,
Борюсь уже второй день с попытками заставить работать пакетный класс. На клиенте работает, на сервере нет. Код: Error executing code: CLRObject object not initialised. X++: System.IO.DirectoryInfo dirInfo; System.Type arrayType; System.Array array; System.IO.FileInfo fileInfo; counter filesCnt; int i; InteropPermission interopPerm; FileIOPermission filePerm; System.Exception clrException; ; interopPerm = new InteropPermission(InteropKind::ClrInterop); interopPerm.assert(); dirInfo = new System.IO.DirectoryInfo(_fromFolder); arrayType = System.Type::GetType("System.IO.FileInfo"); array = System.Array::CreateInstance(arrayType, 1); array = dirInfo.GetFiles(); filesCnt = array.get_Length(); for (i = 0; i < filesCnt; i++) { fileInfo = array.GetValue(i); fileName = fileInfo.get_FullName(); info(fileName); } AX 2009 SP1 RU7
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
29.02.2012, 16:36 | #2 |
Участник
|
Я написал несколько иначе - все работает.
Разница в инициализации CLR объектов - сравните, может быть натолкнет на мысль. Думаю, суть статичных методов dev_netInt и dev_netStr - будет понятна (это у меня методы класса global)... X++: static server container serverFileList(str _filePathServer, str _fileMask = '*.*') { System.IO.DirectoryInfo directoryInfo; System.IO.FileInfo[] fileInfoArray; System.IO.FileInfo fileInfo; container ret; int i; ; new InteropPermission(InteropKind::ClrInterop).assert(); try { directoryInfo = new System.IO.DirectoryInfo(_filePathServer); fileInfoArray = directoryInfo.GetFiles(_fileMask); for (i = 0; i < dev_netInt(fileInfoArray.get_Length()); i++) { fileInfo = fileInfoArray.GetValue(i); ret += dev_netStr(fileInfo.get_Name()); } return ret; } catch (Exception::CLRError) { throw error(AifUtil::getClrErrorMessage() ); } } |
|
|
За это сообщение автора поблагодарили: Link (4). |
|
|