1

这是 C# 代码:

string jsScript = "var x = {A: 10, B: 100}";
scriptEngine.Evaluate(jsScript);
var result = scriptEngine.Evaluate("x");

结果是一个 WindowsScriptItem 对象的实例,我怎样才能得到值 10 和 100?

4

1 回答 1

2

如果您知道对象的属性名称,您可以这样做:

dynamic dynamicResult = result;
Console.WriteLine(dynamicResult.A);
Console.WriteLine(dynamicResult.B);

如果您不知道属性名称,可以这样做:

dynamic dynamicResult = result;
foreach (var name in dynamicResult.GetDynamicMemberNames())
    Console.WriteLine("{0}: {1}", name, dynamicResult[name]);

显然,如果对象的属性值本身可以是对象,您将需要更复杂的东西。

于 2015-04-01T14:07:45.410 回答