1

上下文: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"));

用于设置值。

目前的挑战是更新字典中的值。以下作品

CSSettings.Item("id") = Wfm_AccNumber;

只是它是非标准的 JScript。更重要的是我在 Notepad++ 中使用的 JSHint 工具抱怨。

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

4

1 回答 1

3

以下应该有效:

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

这可能看起来有点笨拙,但它是标准的 JavaScript,应该适用于所有 .NET 索引器(它们并不总是命名为“Item”,并且可以有多个参数)。

于 2016-09-09T11:22:37.890 回答