Quiero ocultar los métodos públicos de la lista de miembros de IntelliSense. Creé un atributo que cuando se aplica a un método hará que se llame al método cuando se construye su objeto. Hice esto para apoyar mejor las clases parciales. El problema es que en algunos entornos (como Silverlight), la reflexión no puede acceder a los miembros privados, incluso a los de las clases secundarias. Esto es un problema ya que todo el trabajo se hace en una clase base. Tengo que hacer que estos métodos sean públicos, pero quiero que estén ocultos de intellisense, de forma similar a cómo funciona el atributo Obsolete
. Francamente, porque soy anal sobre la encapsulación de objetos. He intentado cosas diferentes, pero nada ha funcionado realmente. El método aún aparece en el menú desplegable de miembros.Cómo ocultar los métodos públicos de IntelliSense
¿Cómo evito que los métodos públicos se muestren en intellisense cuando no deseo que los clientes los llamen? Cómo es eso de una pregunta, filisteos reales! Esto también puede aplicarse a las propiedades de MEF que deben ser públicas, aunque a veces desee ocultarlas de los clientes.
Actualización: he madurado como desarrollador ya he publicado esta pregunta. Por qué me importa tanto ocultar la interfaz me supera.
no les haga público si no se desea que sean accesibles/utilizados. – Oded
Así que en lugar de limitarse a añadir llamadas a métodos en el constructor de un objeto, que está añadiendo atributos y llamarlos a través de la reflexión? En cuanto a su comentario sobre "mejores clases parciales de apoyo", ¿no son para eso los métodos parciales? – cadrell0
La implementación de interfaz explícita podría ser un enfoque alternativo a considerar. Los métodos entonces no son parte de la API pública de la clase, pero solo son visibles a través de la interfaz. –