我正在为 Internet Explorer 扩展使用 C#.NET 中的一些代码,该扩展在浏览器中调用 Javascript 并从 Javascript 调用中获取返回值。当 Javascript 返回一个原始类型或原始类型数组时,我得到了一些我可以处理的东西,但是当 Javascript 返回一个对象时,我得到一个不透明的 COM 对象。
如何获取 COM 对象的内容,或者有更好的方法从 C#.NET 调用 IE?
我正在为 Internet Explorer 扩展使用 C#.NET 中的一些代码,该扩展在浏览器中调用 Javascript 并从 Javascript 调用中获取返回值。当 Javascript 返回一个原始类型或原始类型数组时,我得到了一些我可以处理的东西,但是当 Javascript 返回一个对象时,我得到一个不透明的 COM 对象。
如何获取 COM 对象的内容,或者有更好的方法从 C#.NET 调用 IE?
查看InvokeMember 文档底部的注释。如果返回值是一个 javascript 对象,您将收到一个围绕 javascript 对象的 .NET 对象包装器。您将不得不使用反射来检查/调用底层 javascript 对象的成员。这很有意义,因为 javascript 是一种动态语言,而 C# 不是。