为什么 EditorBrowsable 不起作用?

问题描述 投票:0回答:4

我尝试使用

EditorBrowsable
隐藏智能感知中继承的属性(如此处所述 从 IntelliSense 隐藏用户控件属性),在客户端表单中进行测试时,尽管我仍然可以看到它为什么?

[
Category("Main"),
Description("Text"),
Obsolete("Don't use this"),
Browsable(false),
EditorBrowsable(EditorBrowsableState.Never)
]
public override String Text
{
    get { return null; }
}
c# winforms
4个回答
45
投票

您在使用 ReSharper 吗?看起来 ReSharper 不遵守

EditorBrowsable
属性。
如果我关闭 ReSharper,我就看不到我的属性。如果我打开 ReSharper,它会显示。

在 ReSharper 选项中,转到

环境 |智能感知 |完成外观并选中“按 [EditorBrowsable] 属性过滤成员”。

尽管如此,您仍然必须引用程序集,如果您引用用户控件的项目,它就无法在解决方案中工作。


29
投票
我重现。 MSDN 文章中有一个关于此的注释:

在 Visual C# 中,EditorBrowsableAttribute 不抑制类中的成员 在同一个程序集中。

奇怪的是,当我将

UserControl

 放入同一解决方案的不同程序集中时,我也没有看到它抑制它。 
您可能想要 ping
connect.microsoft.com 解决此问题,但有些事情不对劲。


15
投票
正如

这个答案的评论中所说:

editorbrowsable 仅在您只是导入 dll 时隐藏该方法,而不是在我认为解决方案中引用另一个项目时隐藏该方法


-2
投票
你试过这个吗:

Visual Studio > 工具 > 选项 > 常规 > 隐藏高级成员

选中“隐藏高级成员”,请记住,在 Visual C# 中,EditorBrowsableAttribute 不会抑制同一程序集中的类的成员。

EditorBrowsableAttribute 类

© www.soinside.com 2019 - 2024. All rights reserved.