微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从.NET ActiveX组件中读取JScript关联数组

如何解决从.NET ActiveX组件中读取JScript关联数组

|| 我正在C#(.NET 4.0)中实现ActiveX组件,并且无法访问JScript数组;在这种情况下,是一个关联数组。在HTML页面中,我这样调用我的组件:
MyComponent.MyMethod({ \"foo\": \"bar\" });
我的ActiveX组件具有以下方法签名:
public void MyMethod(dynamic someArray)
{
    // someArray will be a RCW (__ComObject)
}
我认为我可以通过Idispatch调用此对象上的所有常用内容。但是,JavaScript数组上没有可用的属性方法。 我已经使用了此博客文章的某些部分来尝试检查我实际上得到的COM对象类型,但是那里显示
DumpTypeInfo
方法只是给了我JScriptTypeInfo,它上面没有定义函数。 大量文章讨论了如何从.NET到JavaScript获取数组,但是相反的方法似乎也不是那么简单。有任何想法吗? PS:我已经尝试了很多其他选择,但是现在都提到它们可能对您没有帮助。     

解决方法

我想知道您是否解决了这个问题。我已经尝试使用WebBrowser控件和分配给以下类的实例的ObjectForScripting属性尝试一些操作
[ComVisible(true)]
public class ObjectForScripting {
    public void Call(dynamic o) {
        Type t = o.GetType();
        var result = t.InvokeMember(\"a\",System.Reflection.BindingFlags.GetProperty,null,o,null);
    }
}
文档执行
window.external.Call({a:\'b\'})
,一切似乎都正常,
result
获得值\“ b \”。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。