2010-02-08 10 views
7

Escribo el control personalizado de ASP.NET, y quiero que tenga algunas propiedades que solo deberían ser visibles desde el código durante el tiempo de ejecución; es decir, estas propiedades no deberían estar visibles tanto en un diseñador como en un código aspx de página que contiene este control. He tratado de usar siguientes atributos:¿Cómo ocultar la propiedad del control personalizado de ASP.NET en la página aspx?

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public List<Item> SomeData { ... }

pero desafortunadamente esta propiedad es aún visible en un cuadro combinado Intellisense al editar la página aspx. ¿Es posible ocultar esta propiedad en todas partes además del código del lado del servidor?

Respuesta

12

Esto debe hacer el truco: Respuesta

//Hide from Designer Property Grid 
[Browsable(false)] 
// Hide from VS.NET Code Editor IntelliSense 
[EditorBrowsable(EditorBrowsableState.Never)] 
// Not Serialized in Designer Source code "HTML view" 
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
public List<Item> SomeData { ... } 
2

de Amiir definitivamente las obras, pero me gustaría añadir que a veces incluso después de aplicar los atributos, el Intellisense todavía muestra las propiedades. Esto es el resultado del almacenamiento en caché de Visual Studio de los archivos de Intellisense. Si construye el mismo proyecto en una máquina diferente, no mostrará las propiedades. Si esto realmente te molesta, puedes borrar la caché eliminando todos los archivos en la carpeta "C: \ Documents and Settings \ [YOUR_USER_NAME] \ Application Data \ Microsoft \ VisualStudio \ 10.0 \ ReflectedSchemas".

Cuestiones relacionadas