拡張メソッドを提供するパブリッククラスがIntellisenseに表示されないようにするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/295287

質問

Intellisenseから拡張メソッドを提供することを唯一の目的とするクラスの名前を「隠す」方法はありますか?

Intellisenseリストからクラス名を削除したいのですが、通常の方法でIntellisenseを介して外部アセンブリでクラスの拡張メソッドを使用できるようにする必要があります。

役に立ちましたか?

解決

わかりました、これに対する答えがあります。クラスをマークするというハルグリムの提案..

[EditorBrowsable(EditorBrowsableState.Never)]

..は実際に動作しますが、クラスではなくアセンブリを作成する際の独自のVSソリューションの場合のように、プロジェクトではなく、アセンブリが参照されている場合のみです。拡張メソッドは通常どおり使用できます。

他のヒント

EditorBrowsable属性を使用してこれができると期待していました:

[EditorBrowsable(EditorBrowsableState.Never)]
static class MyExtensions { }

残念ながら、これはうまくいかなかったようです。

クラスまたは拡張メソッドを非表示にしますか?

静的クラスを独自の名前空間に配置すると、usingディレクティブを使用してその名前空間をインポートしないコードは、「参照」しません。拡張メソッド。

拡張メソッドをモジュールに配置すると、モジュール名がIntellisenseに表示されないようにするHideModuleNameという属性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top