Скрытие методов расширения для определенных универсальных типов в IntelliSense
У меня есть метод расширения:
public static void Foo<T>(this MyClass<T> target)
where T : IEnumerable
{
// Code goes here
}
Я хочу скрыть этот метод расширения от InteliSense, если T является строкой, но не для других типов так же, как методы расширения для IEnumerable в Linq скрыты, когда вы работаете со строкой. Я посмотрел на EditorBrowsableAttribute
но он не позволяет скрыть метод, основанный на универсальном типе.
1 ответ
Попробуйте разместить EditorBrowsableAttribute
к этому методу (и, возможно, к классу, который также содержит этот метод) и переместите метод в другую сборку (другой проект). После этого скомпилируйте сборку и выгрузите проект, чтобы у вас была только ссылка на DLL. Это единственный способ использовать силу EditorBrowsableAttribute
,