Скрытие методов расширения для определенных универсальных типов в 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,

Другие вопросы по тегам