Intellisenseから、拡張メソッドを提供することを唯一の目的とするクラスの名前を「隠す」方法はありますか?
Intellisenseリストからクラス名を削除したいのですが、通常の方法でIntellisenseを介して外部アセンブリでクラスの拡張メソッドを使用できるようにする必要があります。
Intellisenseから、拡張メソッドを提供することを唯一の目的とするクラスの名前を「隠す」方法はありますか?
Intellisenseリストからクラス名を削除したいのですが、通常の方法でIntellisenseを介して外部アセンブリでクラスの拡張メソッドを使用できるようにする必要があります。
わかりました、これに対する答えがあります。クラスをマークするというHallgrimの提案。
[EditorBrowsable(EditorBrowsableState.Never)]
..実際には機能しますが、クラスを提供するアセンブリを記述しているときの私自身のVSソリューションの場合のように、プロジェクトではなく、アセンブリが参照されている場合にのみ機能します。拡張メソッドは通常どおり使用できます。
EditorBrowsable属性を使用してこれを実行できると期待していました。
[EditorBrowsable(EditorBrowsableState.Never)]
static class MyExtensions { }
残念ながら、これはうまくいかなかったようです。
クラスまたは拡張メソッドを非表示にすることを意味しますか?
静的クラスを独自の名前空間に配置すると、その名前空間を using ディレクティブでインポートしないコードは、拡張メソッドを「認識」しません。
拡張メソッドをモジュールに配置すると、HideModuleNameという属性があり、モジュール名がIntellisenseに表示されないようにします。