1
_Engine.Script.test( new { test = 123, cat = "lolcat" } );

这会将以下内容输出到 JavaScript:

{"Equals":{},"GetHashCode":{},"ToString":{},"GetType":{},"test":123,"cat":"lolcat"}

如您所见,这些方法也被转换为 Json 属性。是否有可能(尽可能少的样板语法)只发送属性?类似 Expando 的对象也是如此。

下面是可行的,我可以用一些扩展方法替换一些样板,但如果我能完全摆脱所有样板就更好了。

var js = _Engine.Evaluate( "eval(" + JSONSerializer.Serialize(new { test = 123, cat = "lolcat" }) + ")" );

_Engine.Script.test( js );
4

1 回答 1

0

使用 ClearScript 怎么样PropertyBag?例如,

_Engine.Script.test( new PropertyBag { { "test", 123 }, { "cat", "lolcat" } } );

或者,如果您使用的是 C# 6 或更高版本,

_Engine.Script.test( new PropertyBag { ["test"] = 123, ["cat"] = "lolcat" } );
于 2017-08-29T14:04:53.477 回答