如何在ClearScript中更新Dictionary条目

本文关键字:更新 Dictionary 条目 ClearScript | 更新日期: 2023-09-27 18:06:22

环境:ClearScript, JScript, c#, Windows, Azure

在我启用clearscript的项目中,我有一个Dictionary<string,object>,我使用它将数据传递到评估的脚本中,在内部和外部。

在c#端,我有

static Dictionary<string, object> Settings = new Dictionary<string, object>();

然后是

JSengine = new JScriptEngine(WindowsScriptEngineFlags.EnableDebugging | WindowsScriptEngineFlags.EnableJITDebugging);

JSengine.AddHostObject("CSSettings", Settings);

在JScript这边,我有像

这样的东西
CSSettings.Add("your API key", CSConfig.Retrieve("api.key"));

用于设置值。

当前的挑战是更新Dictionary中的值。以下作品

CSSettings.Item("id") = Wfm_AccNumber;

它只是一个非标准的JScript。更重要的是,我在notepad++中使用的JSHint工具有问题。

我可以在.Add()之前做一个.Remove(),我想,但是有更好的方法吗?

如何在ClearScript中更新Dictionary条目

下面应该可以工作:

CSSettings.Item.set("id", Wfm_AccNumber);
value = CSSettings.Item.get("id"); // or CSSettings.Item("id")

这可能看起来有点笨拙,但它是标准的JavaScript,应该与所有。net索引器(不总是命名为"Item",可以有多个参数)一起工作。