Глобальные директивы "using" в VS2010 / C #? - PullRequest
6 голосов
/ 06 ноября 2010

Я почти уверен, что знаю ответ, но мне интересно, есть ли способ определить глобальную директиву using в моих проектах на C #, чтобы мне не приходилось повторять директиву над каждым файлом кода.

Мой интерес действительно связан с введением методов расширения в .NET Framework.Единственный способ использовать метод расширения - это определить директиву using для пространства имен, содержащего методы расширения.Без директивы using я теряю возможности Intellisense для методов расширения, что означает, что я не всегда буду видеть, какие методы доступны.

Как разработчик платформы, я должен убедиться, что типы и методы, предоставляемые в средеЯсны и доступны разработчикам-потребителям - это ключ ко мне.В то время как документация и обучение служат своей цели, я обнаружил, что большинство разработчиков попадут в период и прокрутят список Intellisense, чтобы увидеть, какие методы и свойства доступны.Даже если они зайдут в Обозреватель объектов или просмотрят справочную документацию, они не узнают о методе расширения, если не узнают об этом.Вот тут и вступает Intellisense.

И, хотя я могу добавить директиву using к шаблону, который использует VS, опция «Remove and Sort» в VS удалит директиву, ссылающуюся на методы расширения, если таковой нет.используется.

Итак, все это говорит о том, есть ли способ определить глобальную директиву «использования» в VS 2010?Если нет, то есть ли шанс, что это рассматривается MS на будущее?

Ответы [ 4 ]

6 голосов
/ 06 ноября 2010

Вы можете разместить свои методы расширения в глобальном пространстве имен, убедившись, что содержащиеся классы не объявлены в пространстве имен. Это сделает их доступными во всем мире.

Что касается пространств имен по умолчанию - кроме изменения шаблонов VS, это невозможно.

Конечно, это всегда возможно МС рассмотрит это. Маловероятно, но возможно.

Вместо того, чтобы искать техническое решение, возможно, вам следует подумать об обучении ваших коллег-разработчиков и предоставить соглашение относительно методов расширения (например, известной схемы расположения / пространства имен)?

0 голосов
/ 20 марта 2017

Вы можете создавать шаблоны файлов .net для классов, содержащих ваши директивы using.

См. Создание шаблонов проектов и элементов (https://msdn.microsoft.com/en-us/library/ms247121.aspx).

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

0 голосов
/ 07 ноября 2010

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

Из того, что я слышал (не использовал его сам), ReSharper сканирует все возможные сборки, и я предполагаю, что вы можете настроить его так, чтобы при создании нового класса он автоматически добавлял директиву using, хотя я не уверен на 100% в этом.

0 голосов
/ 06 ноября 2010

Чтобы ответить на реальную проблему, если вы поместите статический класс с расширениями в пространство имен no , он будет доступен везде. Используйте с осторожностью!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...