在Visual Studio for C#中,从流畅的接口类Intellisense隐藏GetHashCode / Equals / ToString?

我有一个流畅的接口用于IoC容器注册过程,并且包含一些用于构建注册的类。

例如,我可以这样做:

builder.Register<IFoo>().From.ConcreteType<Foo>();

然而,在点之后的每一步,智能感知弹出显示来自Object类,GetHashCode,Equals,GetType和ToString的四个标准方法。

我尝试在几个类中重写这些方法,将EditorBrowsableAttribute属性附加到每个类,但它们仍然显示。我没有办法隐藏他们吗?

请注意,我不是试图将它们从类本身隐藏起来,只是从智能感知。

基本上,我想这样:

                         +---------------+
builder.Register<IFoo>().|As             |
                         |By             |
                         |Equals         | <-- remove this
                         |From           |
                         |GetHashCode    | <-- and this
                         |GetType        | <-- as well as this
                         |ToString       | <-- and finally this
                         +---------------+

这是我在注册< 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();
}

这显然不行。还有什么我可以试试吗?

我也尝试添加一个新的方法,而不是从Object中重写,并且应用相同的属性,也显示出来,所以很清楚,属性不会做我以为会做的。

我注意到文档中没有隐藏同一个程序集的东西,但是我尝试创建一个新项目,并且仍然显示在那里。

根据thread,它是设计的。使用EditorBrowsable(EditorBrowsableState.Never)装饰的方法/属性只有在属于另一个引用的程序集中的类的一部分时才会被隐藏。装配不应该是同一解决方案的一部分。
http://stackoverflow.com/questions/1464737/hiding-gethashcode-equals-tostring-from-fluent-interface-classes-intellisense-in

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:在Visual Studio for C#中,从流畅的接口类Intellisense隐藏GetHashCode / Equals / ToString?