_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 );发布于 2017-08-29 14:04:53
使用ClearScript的PropertyBag怎么样?例如,
_Engine.Script.test( new PropertyBag { { "test", 123 }, { "cat", "lolcat" } } );或者,如果使用的是C# 6或更高版本,
_Engine.Script.test( new PropertyBag { ["test"] = 123, ["cat"] = "lolcat" } );https://stackoverflow.com/questions/45938941
复制相似问题