Посмотрите на использование OXML_RU\invokeGeneric в приложении.
Например, вот так используется при добавлении нового листа
OxmlWorkBook_RU\insertSheet :
X++:
...
Array parameters = new Array(Types::Class);
DocumentFormat.OpenXml.Spreadsheet.Sheet newSheet, sheetAfter;
...
newSheet = new DocumentFormat.OpenXml.Spreadsheet.Sheet();
...
if (sheetAfter)
{
parameters.value(1, newSheet);
parameters.value(2, sheetAfter);
OXML_RU::invokeGeneric(sheets, 'InsertAfter', newSheet.GetType(), parameters);
}
else
{
OXML_RU::appendChild(sheets, newSheet);
}
...
Есть правда один момент - почему то стандартный код у нас валился при выполнении в CIL из за типа элемента массива, пришлось слегка поправить, добавив строку в начале метода
X++:
...
if (xSession::isCLRSession())
{
parameters = new Array(Types::AnyType);
}
...