我在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
我缺少的东西?
是的,这工作。有点惭愧我没有自己尝试 - 这就是我为深夜编码而得到的! –