我在WPF中使用WebBrowser
組件來承載一些JavaScript + HTML,我希望能夠通過一個可定製的對象作爲ObjectForScripting
屬性。我的最終目標是,JavaScript中的WebBrowser
運行可以調用類似:傳遞字典到ObjectForScripting與WPF WebBrowser
window.external['lookup'].getValue(someId);
我可以通過實現與ComVisible
設置一個類實現了接近這true
在其上有一個lookup
屬性:
[ComVisible(true)]
public class ScriptingContext
{
public LookupService lookup { get; set; } //where LookupService is also ComVisible
}
但是,我想靈活處理我傳入的ObjectForScripting
上的成員,所以我無法事先指定每個屬性。
理想情況下,我想指定一個名稱 - 對象傳入,但afaict這不起作用。
我試圖(和失敗的)到目前爲止:使用Dictionary<string,object>
作爲我的上下文
- 使用
Dictionary<string,object>
擴展標記爲ComVisible
- 使用
ExpandoObject
- 使用
List<KeyValuePair<string,object>>
- 使用標記爲
ComVisible
的擴展名List<KeyValuePair<string,object>>
有沒有辦法將可定製的ObjectForScripting
傳遞到WPF WebBrowser
我缺少的東西?
是的,這工作。有點慚愧我沒有自己嘗試 - 這就是我爲深夜編碼而得到的! –