我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