6

有谁知道如何在智能感知中正确隐藏类、方法和属性,同时保留调用它们的能力?所以它们不会出现在从类型库生成的互操作程序集中?

我正在为我们还不想暴露给消费者的自动化测试编写 API 挂钩。这在我们的应用程序附带的内置 SaxBasic 编辑器中似乎运行良好,但在将引用添加到我们的互操作程序集时无法隐藏对象、方法和属性。

这是我如何尝试隐藏这些的示例;已经尝试了各种排列,在此先感谢!

    [
    object,
    uuid(guid),
    helpstring("help"),
    version(ver),
    dual,
    nonextensible,
    oleautomation,
    pointer_default(unique)
]IApplication.VisibleObj
interface IObj : IDispatch
{
        //tried [hidden] here, no luck
 [propget, id(91001), helpstring("Help str. Available as of Object Model Version X.X.X."), hidden]//again tried [hidden] here, no luck
    HRESULT Obj([out, retval] IObj** ppObj);
}
4

1 回答 1

4

似乎 Visual Studio 2008 和 2010 现在忽略了“隐藏”属性,使原本隐藏的界面可浏览。看来必须通过在旨在存在但不可浏览的类、方法和属性上装饰以下内容来修改互操作程序集:

[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]

资料来源:http ://www.summsoft.com/blogs/garyvsta/archive/2009/02/06/preserving-hidden-elements-in-a-com-interop-assembly.aspx

于 2010-09-10T22:53:24.677 回答