Quantcast
Channel: Microsoft Dynamics AX Forum - Recent Threads
Viewing all articles
Browse latest Browse all 175888

RE: Dynamically passing multiple parameters to DictClass.callObject method

$
0
0

I agree with Mohammad Rasheed.

I have also written my code similar to this:-

            if (dictClass != null)
            {
                if(isList)
                {
                    returnList = dictClass.callObject(_methodname, object,argsArray);
                }
                else
                {
                    switch (argsArray.lastIndex())
                    {
                        case 0:
                            returnList = dictClass.callObject(_methodname, object);
                            break;
                        case 1:
                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1));
                            break;
                        case 2:
                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2));
                            break;
                        case 3:
                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2),argsArray.value(3));
                            break;
                        case 4:
                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2),argsArray.value(3),argsArray.value(4));
                            break;
                        case 5:
                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2),argsArray.value(3),argsArray.value(4),argsArray.value(5));
                            break;
                        case 6:
                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2),argsArray.value(3),argsArray.value(4),argsArray.value(5),argsArray.value(6));
                            break;
                        case 7:
                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2),argsArray.value(3),argsArray.value(4),argsArray.value(5),argsArray.value(6),argsArray.value(7));
                            break;
                        case 8:
                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2),argsArray.value(3),argsArray.value(4),argsArray.value(5),argsArray.value(6),argsArray.value(7),argsArray.value(8));
                            break;
                        case 9:
                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2),argsArray.value(3),argsArray.value(4),argsArray.value(5),argsArray.value(6),argsArray.value(7),argsArray.value(8),argsArray.value(9));
                            break;
                        case 10:
                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2),argsArray.value(3),argsArray.value(4),argsArray.value(5),argsArray.value(6),argsArray.value(7),argsArray.value(8),argsArray.value(9),argsArray.value(10));
                            break;
                        default :
                            throw error('Method does not support more than 10 parameter');
                            //... Continue this pattern for the number of parameters you need to support.
                    }
                }
            }


Try this. It will solve your issue.

if (dictClass != null)            {                if(isList)                {                    returnList = dictClass.callObject(_methodname, object,argsArray);                }                else                {                    switch (argsArray.lastIndex())                    {                        case 0:                            returnList = dictClass.callObject(_methodname, object);                            break;                        case 1:                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1));                            break;                        case 2:                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2));                            break;                        case 3:                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2),argsArray.value(3));                            break;                        case 4:                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2),argsArray.value(3),argsArray.value(4));                            break;                        case 5:                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2),argsArray.value(3),argsArray.value(4),argsArray.value(5));                            break;                        case 6:                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2),argsArray.value(3),argsArray.value(4),argsArray.value(5),argsArray.value(6));                            break;                        case 7:                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2),argsArray.value(3),argsArray.value(4),argsArray.value(5),argsArray.value(6),argsArray.value(7));                            break;                        case 8:                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2),argsArray.value(3),argsArray.value(4),argsArray.value(5),argsArray.value(6),argsArray.value(7),argsArray.value(8));                            break;                        case 9:                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2),argsArray.value(3),argsArray.value(4),argsArray.value(5),argsArray.value(6),argsArray.value(7),argsArray.value(8),argsArray.value(9));                            break;                        case 10:                            returnList = dictClass.callObject(_methodname, object, argsArray.value(1),argsArray.value(2),argsArray.value(3),argsArray.value(4),argsArray.value(5),argsArray.value(6),argsArray.value(7),argsArray.value(8),argsArray.value(9),argsArray.value(10));                            break;                        default :                            throw error('Method does not support more than 10 parameter');                            //... Continue this pattern for the number of parameters you need to support.                    }                }            }


Viewing all articles
Browse latest Browse all 175888

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>