Как я могу предотвратить появление в Intellisense открытого класса, предоставляющего методы расширения?
-
08-07-2019 - |
Вопрос
Есть ли способ «скрыть» имя класса, единственной целью которого является предоставление методов расширения, от Intellisense? Р>
Я хотел бы удалить имя класса из списка Intellisense, но мне нужно, чтобы методы расширения класса были доступны для внешних сборок через Intellisense обычным способом.
Решение
Хорошо, у меня есть ответ на этот вопрос. Предложение Халлгрима пометить класс ..
[EditorBrowsable(EditorBrowsableState.Never)]
.. на самом деле работает, но только там, где есть ссылка на сборку , а не на проект, как было бы в моем собственном решении VS во время написания сборки, предоставляющей класс. Методы расширения доступны как обычно.
Другие советы
Я ожидал, что вы можете сделать это с помощью атрибута EditorBrowsable:
[EditorBrowsable(EditorBrowsableState.Never)]
static class MyExtensions { }
К сожалению, это не сработало.
Вы хотите скрыть класс или методы расширения?
Если вы поместите статический класс в его собственное пространство имен, то любой код, который не импортирует это пространство имен с помощью директивы using, не увидит " см. " методы расширения.
Если вы поместите свои методы расширения в модуль, то появится атрибут HideModuleName, который не позволит отображать имя модуля в Intellisense.