我正在用VB.NET编写我的第一个类库。我的想法是分发这个库,以便其他人可以在他们的应用程序中使用它。
然而,也许是由于我缺乏编写和构建库及其中的类的经验,我注意到方法/属性是在Visual Studio的IntelliSense中显示的。
问题在于,它们中的许多只是在库中使用,并且当他们将我的库合并到他们的应用程序中时不应该被开发人员使用(可能会造成灾难) - 只有少数应该是可见的,即那些是是开发人员需要的。
因此,我的问题是:有没有办法从Visual Studio的IntelliSense中隐藏我的库的某些方法/属性?也许类似REM的东西?
提前致谢。
编辑:如上所述 - 这是我的第一个图书馆,我现在明白我的问题可以用两种方式解释:1)如何隐藏IntelliSense中的内容
2)如何防止开发人员使用和调用某些方法/属性
当然,我想要的最终结果是开发人员无法访问AT ALL某些方法/属性,即上面的第2号。
非常感谢。我今天刚刚学到了一些东西,现在我将学习访问级别......
答案 0 :(得分:23)
只应声明要显示的类型/方法/属性Public
。其余的应宣布为Private
,Protected
,Friend
或Protected Friend
。
您可以在MSDN web page for them上详细了解这些访问级别。一般来说,你通常只应该把事情做成他们真正需要的公开。
答案 1 :(得分:4)
您需要将其访问修饰符更改为除Public之外的其他内容。如果它们只是在给定的类中使用,请将它们设为Private Sub XYZ()。如果需要在同一个程序集中的其他类访问它们,请将它们设为Friend Sub XYZ()等。
答案 2 :(得分:2)
供参考:http://www.fmsinc.com/free/NewTips/NET/NETtip23.asp
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public void myHiddenMethod() {
}
答案 3 :(得分:2)
如果要隐藏它们,请将filterpriority标记添加到函数的XML注释中,值为3
''' <summary>
''' </summary>
''' <filterpriority>3</filterpriority>
''' <remarks></remarks>
Sub DontShowMe()
End Sub
这将在intellisense中默认隐藏它。您还可以分别使用值1/2控制Common / All选项卡中的放置。
博客文章主题:http://www.lostechies.com/blogs/sdorman/archive/2009/01/10/xml-comments-filterpriority.aspx
答案 4 :(得分:0)
您可以将一个属性应用于您的代码,元数据将使Visual Studio隐藏代码。这个代码仍然可以被调用,我建议不要这样做,但如果你真的需要它,只需添加:
What Andrew Hare said...
...代码。