ошибки jint при преобразовании dataRow с именем столбца 'item' - PullRequest
0 голосов
/ 08 февраля 2019

Потерпи меня, если мое описание неуклюже, так как я новичок в Jint и только собираюсь разобраться с ним.

Проблема заключается в использовании следующего кода в Jint:

var param = JsValue.FromObject(_jsEngine, row);
var transforms = this._jsEngine.GetValue("transformer");
var result = transforms.Invoke(param);

сообщение об ошибке - «Несоответствие количества параметров».

«Строка» (строка данных с сервера sql) - просто простые числа.

Этот код исправен, пока не было таблицы для преобразования, котораясодержит одно из имен столбцов как 'item'.

Должно быть что-то, чего мне не хватает в отношении того, как Jint интерпретирует преобразование имени элемента ключа ..

В данный момент я не могу думатьлюбого хорошего исправления, не сообщая клиенту об изменении имени столбца, что не является опцией.

PS Я обнаружил, что есть специальная функция преобразователя (), записанная следующим образом:

this._jsEngine.Execute
    (@"
        var transformer =   
        (
            function() {
                            var invocation = 
                            function(row) 
                            {
                                'use strict';
                                var newRow = {}
                                fieldSelectFunctions.forEach(
                                    function(g, index, array) 
                                    {
                                        g(row, newRow);
                                    }
                                );
                                return newRow;
                            };

                            invocation.addSelectFunction = 
                            function(g) 
                            {
                                'use strict';
                                fieldSelectFunctions.push(g);
                            };

                            var fieldSelectFunctions = [];
                            return invocation;
                        }
        )();
    ");
...