如果我的描述很笨拙,请忍受,因为我是Jint的新手,并且正要研究它。
问题是在Jint中使用以下代码:
var param = JsValue.FromObject(_jsEngine, row);
var transforms = this._jsEngine.GetValue("transformer");
var result = transforms.Invoke(param);
错误消息为“参数计数不匹配”。
“行”(SQL Server中的数据行)只是简单的整数。
在没有要转换的表包含列名称之一作为“ item”的表之前,这段代码一直很好。
关于Jint在转换键名项目时的解释方式,我肯定缺少一些东西。
此刻,如果不告诉客户更改列名,我想不出什么好办法。
P.S。我发现有一个自定义的转换器function()编写如下:
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;
}
)();
");