visual una tipo tiene studio standard referencia que puedo puede proyecto otro net hacer framework encontraron componente como clases bibliotecas biblioteca asegurese archivo agregar acceso c# namespaces intellisense hide internal

c# - studio - ¿Ocultar los espacios de nombres que solo contienen tipos internos en una biblioteca de clases?



no se puede agregar referencia.dll c# (2)

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 un proyecto de aplicación, los espacios de nombres aparecen 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?

También he intentado aplicar EditorBrowsableAttribute a todas las clases internas, 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?


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, no lo hará.


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?