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

StackOverflow https://stackoverflow.com/questions/295287

Вопрос

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

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

Это было полезно?

Решение

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

[EditorBrowsable(EditorBrowsableState.Never)]

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

Другие советы

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

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

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

Вы хотите скрыть класс или методы расширения?

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top