在VS 2010 IntelliSense中显示标记为TypeLibType(TypeLibTypeFlags.FHidden)的COM互操作类型

时间:2011-01-19 04:01:07

标签: c# visual-studio visual-studio-2010 com

我的项目引用了一个COM DLL,其中包含一些使用属性[TypeLibType(TypeLibTypeFlags.FHidden)]注释的类型。 MSDN说:“不应该向浏览器显示该类型。”有没有办法通过IntelliSense查看这些类型?

1 个答案:

答案 0 :(得分:1)

首先确保您没有在VisualStudio选项(TextEditor / C#分支)中选中“隐藏高级成员”,但我认为您没有这样做,因为默认情况未选中。

可以通过自己声明有问题的界面并省略该属性来解决它。您应该能够生成一个互操作DLL,然后用反射器查看它。几乎总是可以在C#源代码中编写COM声明,但有时它会变得棘手。

如果你想走那条路有一些陷阱,特别是反射器不会以正确的顺序向你展示界面成员。要找出正确的顺序,请使用ildasm或TLB查看器(两者都包含在VisualStudio中)。另请注意,如果您从未调用过接口方法,则只需声明一个虚拟对象来维护顺序,并且不需要完整的方法签名,这可以节省大量工作。