_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 );
使用ClearScript的PropertyBag
怎么样?例如,
_Engine.Script.test( new PropertyBag { { "test", 123 }, { "cat", "lolcat" } } );
或者,如果你使用的是C#或更高版本,
_Engine.Script.test( new PropertyBag { ["test"] = 123, ["cat"] = "lolcat" } );