我正在编写一个包含纯内部成员类的类库。我将这些划分为命名空间。这些内部课程中没有公共或受保护的成员 问题是,当我在客户端应用程序中使用此类库时,这些名称空间显示在intellisense上。当然,它们不包含任何可访问的项目,所以它只是结束,但我担心这可能会混淆图书馆的用户 例如:
namespace mynamespace.yournamespace { internal class blah { internal void function1(){}; internal void function2(){}; } }
外部使用intellisense时会显示:mynamespace.yournamespace但不提供任何成员(因为它们是内部的)。
那么问题是,有没有办法阻止那些内部课程出现在intellisense中,或者我只是担心什么?或.....如果它的内部,它甚至需要自己的命名空间吗?
任何帮助表示赞赏
(How can I prevent a public class that provides extension methods from appearing in Intellisense?上有类似的帖子,这是不确定的。)
答案 0 :(得分:1)
您可以尝试EditorBrowsableAttribute
- 记录隐藏在不同程序集中定义的类的成员,但如果它是相同的程序集则保持可见。听起来很适合internal
- 尽管我自己没有尝试过。
我想它在您的链接问题中不起作用,因为它仅用于属性或方法:“指定在编辑器中可以查看属性或方法。”
答案 1 :(得分:1)
不,我认为没有办法。
基于错误
错误1名称空间声明不能包含修饰符或属性
我看不出你如何指定应该隐藏名称空间。
可能已经完成的唯一(?)其他方式是在Intellisense设置中使用包含/排除列表,但它们不在那里。
答案 2 :(得分:0)