Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WebBrowser索赔”;对象类型对COM不可见;关于ObjectForScripting_C#_Javascript_Wpf - Fatal编程技术网

C# WebBrowser索赔”;对象类型对COM不可见;关于ObjectForScripting

C# WebBrowser索赔”;对象类型对COM不可见;关于ObjectForScripting,c#,javascript,wpf,C#,Javascript,Wpf,我正在尝试使用WPF WebBrowser控件在C#和JavaScript之间建立互操作。到目前为止,C#->JavaScript调用工作得很好,但我无法让JavaScript->C运行 我已经为该对象创建了一个类: [ComVisible(true)] class BrowserClient { private MainWindow owner; public string id = "browser-client"; public BrowserClient(Ma

我正在尝试使用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事件中设置ObjectForScript属性时:

webBrowser.ObjectForScripting = new BrowserClient(this);
我得到了以下(非常令人困惑的)例外情况:

中发生类型为“System.ArgumentException”的未处理异常 PresentationFramework.dll

其他信息:对象类型对COM不可见。你 需要将ComVisibleAttribute属性设置为True

不用说,我很困惑。这里发生了什么


更新:值得一提的是,我正在Windows 8.1上使用.NET 4.0和Visual Studio 2013 Express for Desktop

我想,我知道你的问题-你需要将你的类
公开

可能你需要在汇编级别上使用
ComVisible
?不,试过了。即使这是解决方案,我也不必这样做,因为类型级别的
ComVisible
应该覆盖程序集级别。我想,我知道-您需要将类
公开
。就是这样!现在我觉得有点傻。你能帮我一个忙并把它作为一个答案贴出来,这样我就可以接受它了吗?新年快乐!我们有时都有点愚蠢——我也没有在第一次传球时看到:o)和“谢谢你”的提议