如何在aspx页面中隐藏ASP.NET自定义控件的属性?

问题描述:

我正在写ASP.NET自定义控件,我希望它有几个属性,这些属性在运行时只能从后面的代码中看到 - 我的意思是,这些属性在设计器和应用程序中都不应该可见包含此控件的页面的aspx代码。我试着用以下属性:如何在aspx页面中隐藏ASP.NET自定义控件的属性?

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

可惜编辑aspx页面时,该属性仍然可见在智能感知下拉框。除了服务器端代码以外,是否有可能隐藏这个属性?

这应该做的伎俩:

//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 { ... } 

Amiir的答案肯定的作品,但我想补充一点,有时甚至应用的属性后,智能感知仍显示性能。这是Visual Studio缓存Intellisense文件的结果。如果您在其他机器上构建相同的项目,则不会显示属性。如果这确实让您感到困惑,您可以通过删除文件夹“C:\ Documents and Settings \ [YOUR_USER_NAME] \ Application Data \ Microsoft \ VisualStudio \ 10.0 \ ReflectedSchemas”中的所有文件来清除缓存。