我有一个用于 IoC 容器注册过程的流畅接口,其中包含一些用于构建注册的类。
例如,我可以这样做:
builder.Register<IFoo>().From.ConcreteType<Foo>();
然而,在点之后的每一步,都会弹出智能感知,显示 Object 类中的四个标准方法:GetHashCode、Equals、GetType 和 ToString。
我尝试在几个类中重写这些方法,附加编辑器可浏览属性 http://msdn.microsoft.com/en-us/library/system.componentmodel.editorbrowsableattribute.aspx归因于每个,但它们仍然出现。我就没有办法隐藏它们吗?
请注意,我并不是试图对类本身隐藏它们,只是对智能感知隐藏它们。
基本上,我想要这样:
+---------------+
builder.Register<IFoo>().|As |
|By |
|Equals | <-- remove this
|From |
|GetHashCode | <-- and this
|GetType | <-- as well as this
|ToString | <-- and finally this
+---------------+
这是我在返回的类中尝试的内容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();
}
这显然行不通。还有什么我可以尝试的吗?
我还尝试添加一个新方法,而不是从Object
,并对其应用相同的属性,这也显示出来了,所以很明显该属性没有按照我想象的那样执行。
我注意到文档中关于不隐藏同一程序集中的内容的注释,但我尝试创建一个新项目,它们仍然显示在那里。