【发布时间】:2011-04-04 12:46:49
【问题描述】:
有谁知道如何在智能感知中正确隐藏类、方法和属性,同时保留调用它们的能力?所以它们不会出现在从类型库生成的互操作程序集中?
我正在为我们不希望向消费者公开的自动化测试编写 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);
}
【问题讨论】:
-
为什么要导出不想被看到的方法?只是不要导出它!
-
部分原因是应用程序开发人员教我如何访问内部逻辑(昨天),部分原因是数据模型远离最终用户。我们的测试框架与我们的应用程序交互的方式与我们期望第三方开发人员的交互方式相同。