如何从intellisense中正确隐藏方法和属性

问题描述:

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

我正在为自动化测试编写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); 
} 
+1

为什么你导出方法,你不要不想被看到?只是不输出它! – Andrey 2010-08-26 21:46:38

+0

部分原因是这是应用程序开发人员如何访问内部逻辑(昨天),部分原因是数据模型远离最终用户。我们的测试框架与我们的应用程序以我们期望的第三方开发人员相同的方式进行交互。 – BrMcMullin 2010-08-26 22:00:47

它出现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