¿Cómo puedo evitar que aparezca una clase pública que proporciona métodos de extensión en Intellisense?

StackOverflow https://stackoverflow.com/questions/295287

Pregunta

¿Hay alguna forma de 'ocultar' el nombre de una clase, cuyo único propósito es proporcionar métodos de extensión, desde Intellisense?

Me gustaría eliminar el nombre de la clase de la lista Intellisense, pero necesito que los métodos de extensión de la clase estén disponibles para los ensamblados externos a través de Intellisense de la forma habitual.

¿Fue útil?

Solución

Ok, tengo la respuesta a esto. La sugerencia de Hallgrim de marcar la clase con ...

[EditorBrowsable(EditorBrowsableState.Never)]

... en realidad funciona, pero solo donde se hace referencia al ensamblaje , en lugar del proyecto, como sería el caso en mi propia solución VS mientras escribía el ensamblaje que proporciona la clase. Los métodos de extensión están disponibles como de costumbre.

Otros consejos

Esperaba que pudieras hacerlo con el atributo EditorBrowsable:

[EditorBrowsable(EditorBrowsableState.Never)]
static class MyExtensions { }

Lamentablemente, esto no pareció funcionar.

¿Quiere decir que desea ocultar la clase o los métodos de extensión?

Si coloca la clase estática en su propio espacio de nombres, cualquier código que no importe ese espacio de nombres con una directiva using no "verá". los métodos de extensión.

Si coloca sus métodos de extensión en un módulo, hay un atributo llamado HideModuleName que ocultará que el nombre del módulo no aparezca en Intellisense.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top