我WebBrowser
在 WPF 中使用一个组件来托管一些 JavaScript + HTML,并且我希望能够将可自定义的对象作为ObjectForScripting
属性传递。我的最终目标是运行在 javascript 中的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
传入的成员保持灵活,因此我无法事先指定每个属性是什么。
理想情况下,我只想指定一个名称-对象对来传递,但这不起作用。
到目前为止我已经尝试过(但失败了):
- 使用 a
Dictionary<string,object>
作为我的上下文 - 使用的扩展
Dictionary<string,object>
被标记为ComVisible
- 使用
ExpandoObject
- 用一个
List<KeyValuePair<string,object>>
- 使用的扩展
List<KeyValuePair<string,object>>
被标记为ComVisible
有什么方法可以将可自定义的内容传递到我缺少ObjectForScripting
的 WPF中吗?WebBrowser