Вообще, даже в методе nullValueBaseType класса Global пришлось делать "затычку":
Объявить переменную:
RealBase realValue;
Далее:
X++:
case Types::Real:
// FIX klimov 10.11.2023 -->
if (xSession::isCLRSession())
{
// Весёлый CIL.
// Если просто вернуть 0.0 в anytype, то в CIL вернется объект System.Double.
// А если не вызывать Convert, то будет не 0, а 0.___значение (типа 0.0000000000578).
realValue = System.Convert::ToDouble(0.0);
return realValue;
}
else
{
// FIX klimov 10.11.2023 <--
return 0.0;
}
Иначе в CIL простой метод добавления поля в Struct с пустым значением:
X++:
recordStruct.add(fieldName, nullValueBaseType(fieldType));
для Types Real создавал поле с типом Class.