当前位置:  开发笔记 > 编程语言 > 正文

隐藏名称空间只包含类库中的内部类型?

如何解决《隐藏名称空间只包含类库中的内部类型?》经验,为你挑选了2个好方法。

我有一个类库,有几个名称空间只包含内部类型.

但是,在应用程序项目中使用类库时,名称空间显示在intellisense中,但当然它们是空的.在其他项目中使用intellisense时,有什么方法可以完全隐藏命名空间吗?

我也试图应用于EditorBrowsableAttribute所有内部类,但我想做的是将其应用于命名空间,这当然是不可能的.

或者,如果我足够关心这个,我必须将类型移动到包含公共类型的命名空间中的唯一选择?



1> takrl..:

这取决于您引用类库的方式:

如果您的解决方案中包含类库项目并使用项目引用,您将始终通过Intellisense看到该空命名空间.

如果您正在引用类库的已编译dll,则只要它只包含内部成员,您就不会在intellisense中看到命名空间.

试试这个:

namespace ClassLibrary1
{
    namespace Internal
    {
        internal class InternalClass
        {
            public int internalStuff { get; set; }
        }
    }

    namespace Public
    {
        public class PublicClass
        {
            public int publicStuff { get; set; }
        }
    }
}

如果您通过项目引用引用它,您将看到空命名空间.如果你引用它的dll,你就不会.



2> James L..:

我之前遇到过这种情况并没有找到任何解决方案,只有在您的项目中可能有效或无效的解决方法.您可以使用嵌套的静态类,而不是定义命名空间?


既然C#具有`using static`,嵌套的静态类方法变得更加可行.
推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有