2010-02-08 13 views
7

Piszę niestandardową formant ASP.NET, i chcę, aby miał kilka właściwości, które powinny być widoczne tylko z kodu za w czasie wykonywania - mam na myśli, te właściwości nie powinny być widoczne zarówno w projektancie i w Kod strony aspx zawierający tę kontrolkę. Próbowałem użyć następujące atrybuty:Jak ukryć własność niestandardowego sterowania ASP.NET na stronie aspx?

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

ale niestety ta właściwość jest nadal widoczny w combobox Intellisense podczas edycji strony aspx. Czy można ukryć tę właściwość wszędzie poza kodem po stronie serwera?

Odpowiedz

12

To powinno załatwić sprawę: odpowiedź

//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

Amiir na pewno działa, ale chciałbym dodać, że czasami nawet po zastosowaniu atrybutów intellisense nadal wyświetla właściwości. Jest to wynikiem buforowania przez Visual Studio plików Intellisense. Jeśli zbudujesz ten sam projekt na innej maszynie, nie będzie on wyświetlał właściwości. Jeśli to naprawdę Cię uszkodzi, możesz wyczyścić pamięć podręczną, usuwając wszystkie pliki z folderu "C: \ Documents and Settings \ [YOUR_USER_NAME] \ Dane aplikacji \ Microsoft \ VisualStudio \ 10.0 \ ReflectedSchemas."