首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DynamicObject和Jint

DynamicObject和Jint
EN

Stack Overflow用户
提问于 2010-09-13 17:38:53
回答 1查看 1.7K关注 0票数 4

我想使用DynamicObject类在Jint下,并且我已经构建了一个示例来实现它。第一个断言正确传递,但在第二个断言时失败。

有什么方法可以这样做吗?或者您知道其他的javascript引擎使它成为可能吗?

代码语言:javascript
复制
public void Jtest()
{
    Jint.JintEngine engine = new JintEngine();

    dynamic subject = new MyDynamicObject();

    dynamic x = subject.myProp.otherProp;

    Assert.AreEqual(subject, x);

    engine.SetParameter("myClass", subject);

    object result = engine.Run(@"return myClass.myProp.otherProp;");

    // result is null here
    Assert.AreEqual(subject, result);
}

public class MyDynamicObject : System.Dynamic.DynamicObject
{
    public override bool TryGetMember(System.Dynamic.GetMemberBinder binder, out object result)
    {
        result = this;
        return true;
    }
}
EN

回答 1

Stack Overflow用户

发布于 2010-09-14 05:44:44

我认为答案是用jint密码。要找到属性,它是基于反射的。我不认为反射处理动态对象。也许应该修改代码以使用lambda表达式。但在这种情况下,它将不再适用于2.0。

首先,您应该尝试重写方法GetDynamicMemberNames。也许这将有助于反射找到属性,因此Jint。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3702917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档