簡體   English   中英

從.NET ActiveX組件中讀取JScript(關聯)數組

[英]Reading JScript (associative) array from .NET ActiveX component

我正在用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顯示的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”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM