保持内部类的名称空间不会出现在intellisense中

时间:2011-04-19 13:45:24

标签: c# namespaces usability class-library

我正在编写一个包含纯内部成员类的类库。我将这些划分为命名空间。这些内部课程中没有公共或受保护的成员 问题是,当我在客户端应用程序中使用此类库时,这些名称空间显示在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?上有类似的帖子,这是不确定的。)

3 个答案:

答案 0 :(得分:1)

您可以尝试EditorBrowsableAttribute - 记录隐藏在不同程序集中定义的类的成员,但如果它是相同的程序集则保持可见。听起来很适合internal - 尽管我自己没有尝试过。

我想它在您的链接问题中不起作用,因为它仅用于属性或方法:“指定在编辑器中可以查看属性或方法。”

答案 1 :(得分:1)

不,我认为没有办法。

基于错误

  

错误1名称空间声明不能包含修饰符或属性

我看不出你如何指定应该隐藏名称空间。

可能已经完成的唯一(?)其他方式是在Intellisense设置中使用包含/排除列表,但它们不在那里。

答案 2 :(得分:0)