Как я могу запретить публичный класс, который предоставляет методы расширения в Intellisense?

Есть ли способ "скрыть" имя класса, единственной целью которого является предоставление методов расширения, от Intellisense?

Я хотел бы удалить имя класса из списка Intellisense, но вам необходимо, чтобы методы расширения класса были доступны внешним сборкам через Intellisense обычным способом.

4 ответа

Хорошо, у меня есть ответ на этот вопрос. Предложение Hallgrim о маркировке класса с помощью.

[EditorBrowsable(EditorBrowsableState.Never)]

.. действительно работает, но только там, где ссылается сборка, а не на проект, как это было бы в моем собственном решении VS при написании сборки, предоставляющей класс. Способы расширения доступны, как обычно.


Я ожидал, что вы сможете с этим атрибутом EditorBrowsable:

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

К сожалению, это не сработало.


Вы хотите, чтобы вы скрывали класс или методы расширения?

Если вы ставите статический класс в собственное пространство имен, тогда любой код, который не импортирует это пространство имен с помощью директивы using, не будет "видеть" методы расширения.


Если вы разместите свои методы расширения в модуле, появится атрибут HideModuleName, который скроет имя модуля из-за появления в Intellisense.

licensed under cc by-sa 3.0 with attribution.