IoC コンテナー登録プロセス用の流暢なインターフェイスがあり、これには登録を構築するために使用されるいくつかのクラスが含まれています。
たとえば、私はこれを行うことができます:
builder.Register<IFoo>().From.ConcreteType<Foo>();
ただし、ドットの後の各ステップでは、Object クラスの 4 つの標準メソッド、GetHashCode、Equals、GetType、および ToString を示す IntelliSense がポップアップ表示されます。
いくつかのクラスでこれらのメソッドをオーバーライドして、それぞれにEditorBrowsableAttribute属性をアタッチしようとしましたが、それでも表示されます。それらを隠す方法はありませんか?
クラス自体からそれらを隠そうとしているのではなく、単にインテリセンスから隠していることに注意してください。
基本的に、私はこれが欲しい:
+---------------+
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
、同じ属性をそれに適用しようとしましたが、それも表示されるため、属性が思ったとおりに機能していないことは明らかです。
同じアセンブリから物を隠さないというドキュメントのメモに気付きましたが、新しいプロジェクトを作成しようとしましたが、まだそこに表示されます。