【问题标题】:ComVisible(false) class with ComVisible(true) members具有 ComVisible(true) 成员的 ComVisible(false) 类
【发布时间】:2010-08-18 08:51:45
【问题描述】:

我正在为 Microsoft 认证考试而学习,我遇到了一种情况,该课程不是 ComVisible 但有方法。我假设由于该类对 COM 不可见,因此它的成员将无法访问。但是,即使类不是,成员显然也可以是 ComVisible。

如果 COM 一开始就无法访问该类,它如何访问该类成员?

我从来没有将 .NET 程序集暴露给 COM 的经验。这对我来说毫无意义。

【问题讨论】:

    标签: com interop


    【解决方案1】:

    您可能在 MSDN doc page 中看到 ComVisibleAttribute 的示例代码。是的,那是假的。在同一页面上,强调我的:

    将特定类型的属性设置为 false 会隐藏该类型及其成员。 但是,如果类型不可见,则不能使该类型的成员可见。 将类型的属性设置为 false 可防止将该类型导出到类型库;课程未注册;接口永远不会响应非托管 QueryInterface 调用。

    错误的示例代码。

    【讨论】:

    • +1 这是合理的行为。然而值得注意的是,一个人可以标记汇编而不是 ComVisible,然后他仍然可以标记类/接口 ComVisible 并将它们分别公开给 COM。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    相关资源
    最近更新 更多