Показать сообщение отдельно
Старый 29.02.2012, 16:36   #2  
someOne is offline
someOne
Участник
Аватар для someOne
 
173 / 423 (15) +++++++
Регистрация: 11.12.2008
Адрес: Москва
Я написал несколько иначе - все работает.

Разница в инициализации 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).