Я написал несколько иначе - все работает.
Разница в инициализации 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() );
}
}