7

我正在编写 ASP.NET 自定义控件,并且我希望它具有一些属性,这些属性应该只在运行时后面的代码中可见 - 我的意思是,这些属性在设计器和 aspx 代码中都不可见包含此控件的页面。我尝试使用以下属性:

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

但不幸的是,在编辑 aspx 页面时,此属性在 Intellisense 组合框中仍然可见。除了服务器端代码之外,是否可以在任何地方隐藏此属性?

4

2 回答 2

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 { ... }
于 2010-11-22T05:41:55.640 回答
2

Amiir 的回答绝对有效,但我想补充一点,有时即使在应用属性之后,Intellisense 仍会显示属性。这是 Visual Studio 缓存 Intellisense 文件的结果。如果您在不同的机器上构建相同的项目,它不会显示属性。如果这确实困扰您,您可以通过删除文件夹“C:\Documents and Settings\[YOUR_USER_NAME]\Application Data\Microsoft\VisualStudio\10.0\ReflectedSchemas”中的所有文件来清除缓存。

于 2011-03-03T19:08:56.973 回答