Как я могу предотвратить появление в Intellisense открытого класса, предоставляющего методы расширения? - PullRequest
3 голосов
/ 17 ноября 2008

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

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

Ответы [ 4 ]

2 голосов
/ 17 ноября 2008

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

[EditorBrowsable(EditorBrowsableState.Never)]

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

2 голосов
/ 17 ноября 2008

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

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

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

1 голос
/ 17 ноября 2008

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

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

0 голосов
/ 17 ноября 2008

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

...