2010-02-08 71 views
7

我正在寫ASP.NET自定義控件,我希望它有幾個屬性,這些屬性在運行時只能從後面的代碼中看到 - 我的意思是,這些屬性在設計器和應用程序中都不應該可見包含此控件的頁面的aspx代碼。我試着用以下屬性:如何在aspx頁面中隱藏ASP.NET自定義控件的屬性?

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

可惜編輯aspx頁面時,該屬性仍然可見在智能感知下拉框。除了服務器端代碼以外,是否有可能隱藏這個屬性?

回答

12

這應該做的伎倆:

//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的答案肯定的作品,但我想補充一點,有時甚至應用的屬性後,智能感知仍顯示性能。這是Visual Studio緩存Intellisense文件的結果。如果您在其他機器上構建相同的項目,則不會顯示屬性。如果這確實讓您感到困惑,您可以通過刪除文件夾「C:\ Documents and Settings \ [YOUR_USER_NAME] \ Application Data \ Microsoft \ VisualStudio \ 10.0 \ ReflectedSchemas」中的所有文件來清除緩存。

相關問題