隐藏类库中仅包含内部类型的命名空间?
-
23-08-2019 - |
题
我有一个类库,它有几个仅包含内部类型的命名空间。
但是,当在应用程序项目中使用类库时,命名空间会显示在智能感知中,但它们当然是空的。在其他项目中使用智能感知时,有什么方法可以完全隐藏名称空间吗?
我尝试过申请 EditorBrowsableAttribute
也适用于所有内部类,但我想做的是将其应用于命名空间,这当然是不可能的。
或者,如果我足够关心这一点,我唯一的选择就是将类型移动到包含公共类型的命名空间中?
解决方案
这取决于您如何引用类库:
- 如果您的解决方案中包含类库项目并使用项目引用,您将始终通过 Intellisense 看到该空命名空间。
- 如果您引用类库的已编译 dll,则不会在智能感知中看到命名空间弹出,前提是它仅包含内部成员。
尝试这个:
namespace ClassLibrary1
{
namespace Internal
{
internal class InternalClass
{
public int internalStuff { get; set; }
}
}
namespace Public
{
public class PublicClass
{
public int publicStuff { get; set; }
}
}
}
如果您通过项目引用引用它,您将看到空的命名空间。如果您引用它的 dll,则不会。
其他提示
我已经遇到了在此之前并没有发现任何解决方案,只有一种解决方法可能会或可能不会在您的项目工作。而不是定义一个命名空间,你可以使用一个嵌套的静态类的?
不隶属于 StackOverflow