ClearScript:停止将方法转换为JavaScript属性


_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" } );

相关内容

  • 没有找到相关文章

最新更新