У меня есть свободный интерфейс для процесса регистрации контейнера IoC, и это содержит некоторые классы, которые используются для создания регистраций.
Например, я могу это сделать:
builder.Register<IFoo>().From.ConcreteType<Foo>();
Однако на каждом шаге после точки всплывает 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
+---------------+
Вот что я пробовал в классе, который возвращается из 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
, и применить к нему тот же атрибут, и это тоже проявляется, поэтому ясно, что этот атрибут не делает то, что я думал, что он это сделает.
Я заметил примечание в документации о том, что я не скрывал вещи из той же сборки, но я попытался создать новый проект, и они все еще появляются там.