/ / ¿Ocultar los espacios de nombres que contienen solo tipos internos en una biblioteca de clases? - c #, espacios de nombres, intellisense, hide, internal

¿Ocultar espacios de nombres que contienen solo tipos internos en una biblioteca de clases? - c #, espacios de nombres, intellisense, ocultar, interno

Tengo una biblioteca de clases que tiene un par de espacios de nombres que solo contienen tipos internos.

Sin embargo, cuando se utiliza la biblioteca de clases en unaproyecto de aplicación, los espacios de nombres se muestran en intellisense, pero por supuesto están vacíos. ¿Hay alguna forma de que oculte los espacios de nombres completamente cuando uso intellisense en otros proyectos?

He tratado de aplicar EditorBrowsableAttribute a todas las clases internas también, pero lo que me gustaría hacer sería aplicar eso al espacio de nombres, lo que por supuesto es imposible.

¿O es, si me importa lo suficiente esto, la única opción que tengo para mover los tipos a un espacio de nombres que contenga tipos públicos?

Respuestas

46 para la respuesta № 1

Depende de cómo estés haciendo referencia a tu biblioteca de clases:

  • Si tiene el proyecto de biblioteca de clases contenido en su solución y usa una referencia de proyecto, siempre verá ese espacio de nombres vacío a través de Intellisense.
  • Si está haciendo referencia a un dll compilado de su biblioteca de clases, no verá el espacio de nombres emergiendo en intellisense, siempre que contenga solo miembros internos.

Prueba esto:

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

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

Si hace referencia a esto a través de una referencia de proyecto, verá el espacio de nombres vacío. Si hace referencia a una dll de ella, ganará "t.


5 para la respuesta № 2

Me he enfrentado a esto antes y no he encontrado ninguna solución, solo una solución que puede o no funcionar en su proyecto. En lugar de definir un espacio de nombres, ¿podría usar una clase estática anidada?