2010-12-14 30 views
19

Traté de ocultar la propiedad heredada en intellisense con EditorBrowsable (como dije aquí Hiding user control properties from IntelliSense), al probar en forma de cliente aunque todavía puedo verlo ¿por qué?¿Por qué EditorBrowsable no funciona?

[ 
Category("Main"), 
Description("Text"), 
Obsolete("Don't use this"), 
Browsable(false), 
EditorBrowsable(EditorBrowsableState.Never) 
] 
public override String Text 
{ 
    get { return null; } 
} 
+0

Pocos años pasaron, pero para cualquier persona interesada: https://github.com/dotnet/roslyn/issues/4434 – quetzalcoatl

Respuesta

19

I repro. Hay una nota en el artículo de MSDN acerca de esto:

En Visual C#, EditorBrowsableAttribute no suprime los miembros de una clase en el mismo conjunto.

Curiosamente, no lo veo suprimir tampoco cuando puse el UserControl en un ensamblaje diferente en la misma solución.
Es posible que desee hacer ping al connect.microsoft.com acerca de esto, algo no está bien.

+0

¿cerró y volvió a abrir VS? Controles de caché VS. – eschneider

+0

@escheneider sí todavía no resolvió. – user310291

+0

al menos parece que tienes el mismo resultado que yo, así que no estoy loco :) ¡Me rendiré demasiado iracundo! – user310291

36

¿Está utilizando Resharper? Parece que Resharper no obedece el atributo EditorBrowsable.
Si apago Resharper, no veo mi propiedad. Si enciendo el Resharper, muestra.

En las opciones de Resharper, vaya a Medio ambiente | IntelliSense | Aspecto de finalización y marque "Filtrar miembros por atributo [EditorBrowsable]".

Aún así, debe hacer referencia al ensamblaje, no funciona dentro de una solución si hace referencia al proyecto de control de usuario.

+0

No, no estoy usando Reshaper. He abierto el proyecto del cliente en otra solución y apunto a la dll de la caja de herramientas y aún puedo ver la propiedad Text en intellisense. Creo que me rendiré, parece demasiado iracundo para mí :) – user310291

+0

que funcionó para mí, ya que estoy usando Resharper. Incluso con la misma solución cuando se hace referencia como proyecto, funciona. ¡gracias! – afif

+0

¡Gracias! Después de horas intentando hacer que funcione, leí tu respuesta y ¡voilá! Funciona impecablemente ahora. Gracias, nunca pensé que el reafilado lo estaba causando. –

4

Como se ha dicho en los comentarios this answer 's:

editorbrowsable sólo oculta el método si sólo está importando el archivo DLL, no si lo está haciendo referencia a otro proyecto en la solución creo

Cuestiones relacionadas