我正在尝试使用
WPF WebBrowser控件在C#和
JavaScript之间建立互操作.到目前为止,C# – > JavaScript调用工作得很好,但我无法使JavaScript-> C#运行.
我为对象创建了一个类:
[ComVisible(true)] class BrowserClient { private MainWindow owner; public string id = "browser-client"; public BrowserClient(MainWindow owner) { this.owner = owner; } public void sendMessage(string date) { owner.OnReceiveMessage(date); } }
请注意ComVisible属性.
但是当我在Window_Loaded事件中设置ObjectForScripting属性时:
webBrowser.ObjectForScripting = new BrowserClient(this);
我得到以下(非常混乱)异常:
An unhandled exception of type ‘System.ArgumentException’ occurred in
PresentationFramework.dllAdditional information: The object type is not visible to COM. You
need to set ComVisibleAttribute attribute to True.
不用说,我很困惑.这里发生了什么?
更新:值得一提的是,我在Windows 8.1上使用.NET 4.0和Visual Studio 2013 Express for Desktop.
解决方法
我想,我知道你的问题 – 你需要公开你的课程