![]() |
#1 |
Участник
|
a33ik: Function SysOperationDataContractInfo::newParameterInfo has been incorrectly called
Источник: http://daxonline.org/1623-function-s...ly-called.html
============== Problem DictMethod, when it is running without debugger, does not correctly fetches metadata of inherited methods on a child class. Following code: static void VKDictMethodTest(Args _args){ DictMethod dictMethod; str parmName; int parmIndex = 1; dictMethod = new dictMethod(UtilElementType::ClassInstanceMethod, classNum(AssetProposalAcquisition), 'buildRange'); parmName = dictMethod.parameterName(parmIndex); if (parmName) { info(strFmt("ParmName: %1", parmName)); } else { throw error("incorrect"); }} ![]() Depending on the debug mode option, the execution of code above will give different results. ![]() It does not able to fetch first parameter name. Debug mode: When breakpoint ParmName: _items Impact SysOperation framework uses DictMethod to prepare parameters for method execution \Classes\SysOperationServiceController\getDataContractInfoObjectsInternal <div>protected Map getDataContractInfoObjectsInternal(){ SysDictClass dataContractClass; DictMethod dictMethod; int parameterCount; int i; Object dataContractObject; SysOperationDataContractInfo contractInfo; Map dataContractInfoObjects; dataContractInfoObjects = new Map(Types::String, Types::Class); dictMethod = this.getServiceOperation(); if (dictMethod) { parameterCount = dictMethod.parameterCnt(); for (i = 1; i |
|