我有JS代码:
function on_save() {
Service.AddTableRow([{id: 21194, value: "jjkk"}, {id: 1234, value: "Lala"}]);
return true;
}进入c#,我需要:
var engine = new V8ScriptEngine();
engine.AddHostObject("Service", scriptService);
engine.Execute(content);
result = engine.Script.on_save();在scriptService中我有:
public void AddTableRow(Dictionary<string, object> values)
{
//but there is invalid argument "values"
//I also tried List<object> param type but result is the same
}我怎样才能解决这个问题?
发布于 2022-10-04 18:10:23
试着做这样的事情:
public void AddTableRow(IList list) {
foreach (ScriptObject item in list) {
Console.WriteLine("{0} -> {1}", item["id"], item["value"]);
}
}您可以看到这个示例工作的这里。
编辑:如果您使用的是比ClearScript 6更老的东西,您可以这样做:
public void AddTableRow(dynamic list) {
int length = list.length;
for (var i = 0; i < length; ++i) {
var item = list[i];
Console.WriteLine("{0} → {1}", item.id, item.value);
}
}该技术还演示了这里。较新的ClearScript版本同时支持两者。
https://stackoverflow.com/questions/73945675
复制相似问题