ang*_*son 22 c# methods intellisense hide visual-studio
我有一个流畅的IoC容器注册过程接口,其中包含一些用于构建注册的类.
例如,我可以这样做:
builder.Register<IFoo>().From.ConcreteType<Foo>();
Run Code Online (Sandbox Code Playgroud)
但是,在点之后的每个步骤中,会弹出intellisense,显示Object类,GetHashCode,Equals,GetType和ToString中的四种标准方法.
我尝试在几个类中重写这些方法,将EditorBrowsableAttribute属性附加到每个类,但它们仍然显示出来.我没有办法隐藏它们吗?
请注意,我并不是试图将它们隐藏在类本身之外,只是来自intellisense.
基本上,我喜欢这个:
+---------------+
builder.Register<IFoo>().|As |
|By |
|Equals | <-- remove this
|From |
|GetHashCode | <-- and this
|GetType | <-- as well as this
|ToString | <-- and finally this
+---------------+
Run Code Online (Sandbox Code Playgroud)
这是我在返回的类中尝试的内容Register<T>:
[EditorBrowsable(EditorBrowsableState.Never)]
public override Boolean Equals(Object obj)
{
return base.Equals(obj);
}
[EditorBrowsable(EditorBrowsableState.Never)]
public override Int32 GetHashCode()
{
return base.GetHashCode();
}
[EditorBrowsable(EditorBrowsableState.Never)]
public override String ToString()
{
return base.ToString();
}
Run Code Online (Sandbox Code Playgroud)
这显然不起作用.还有什么我可以尝试的吗?
我还尝试添加一个新方法,而不是重写Object,并将相同的属性应用于该方法,并且也显示出来,所以显然该属性没有按照我的想法做.
我注意到文档中的注释没有从同一个程序集中隐藏东西,但我尝试创建一个新项目,它们仍然显示在那里.
ang*_*son 21
好的,我找到了解决方案,部分是我的错,部分文档不完整.
我的错是我没有在正确的类中标记所有方法,但即使纠正了这些方法,这些方法仍然出现了.
原文中的说明如下:
在Visual C#中,EditorBrowsableAttribute不会抑制同一程序集中的类的成员.
应该是(强调我的):
在Visual C#中,EditorBrowsableAttribute不会在同一个开放解决方案中禁止来自类的成员.
我在相应的类中标记了方法,进行了完全重建,在解决方案文件之外创建了一个新项目,从我的IoC项目中对已编译文件进行了文件引用,并且看到方法消失了.
我会留下这个问题以防其他人有这个问题.
| 归档时间: |
|
| 查看次数: |
4138 次 |
| 最近记录: |