Есть ли способ избавиться от длинного списка употреблений в верхней части моих файлов .cs? - PullRequest
0 голосов
/ 15 сентября 2008

По мере того, как в моем решении появляется все больше и больше пространств имен, список операторов использования в верхней части моих файлов увеличивается с каждым разом. Это особенно верно в моих модульных тестах, где для каждого компонента, который может быть вызван, мне нужно включить использование для интерфейса, контейнер IoC и конкретный тип.

Из-за того, что в моих файлах интеграционных тестов использовалось более 17 строк, это становится просто беспорядочным. Кто-нибудь знает, есть ли способ определить макрос для моей базы с помощью операторов? Любые другие решения?

Ответы [ 10 ]

6 голосов
/ 15 сентября 2008

Я знаю, что не должен говорить это вслух, но, возможно, пересмотреть ваш дизайн.

17 использований в 1 файле = много связей (на уровне пространства имен).

4 голосов
/ 15 сентября 2008

Некоторым людям нравится скрывать употребления в #region. В противном случае, я думаю, что вам не повезло. Если вы не хотите поместить пространство имен во все ваши референты.

2 голосов
/ 15 сентября 2008

Здесь возможны четыре проблемы;

Пространства имен в вашем коде делят ваши классы слишком хорошо. если у вас есть, например;

using MyCompany.Drawing.Vector.Points;
using MyCompany.Drawing.Vector.Shapes;
using MyCompany.Drawing.Vector.Transformations;

рассмотрите возможность сворачивания их в единое пространство имен MyCompany.Drawing.Vector. Вы, вероятно, не выигрываете, если делите слишком много. Visual Studio Code Analysis / FxCop имеет правило для этого, проверяющее количество классов в пространстве имен. Слишком мало, и это предупредит вас.

Вы помещаете слишком много тестов в один и тот же класс. Если вы ссылаетесь на System.Data, System.Drawing и System.IO в одном и том же классе, рассмотрите возможность написания большего количества атомарных тестов, некоторые из которых доступ к базам данных, некоторые из которых рисуют изображения, а некоторые - в файловой системе. Затем разделите каждый тип на три тестовых класса.

Вы пишете тесты, которые делают слишком много. Если вы ссылаетесь на множество пространств имен, ваши тесты могут объединять слишком много функций. Такой тип связи часто может быть ошибочным, поэтому попробуйте разбить большие, широкие функции на более мелкие части и протестировать их в отдельных файлах.

Многие из них являются избыточными. Все они используются или просто скопированы из других файлов. Щелкните правой кнопкой мыши редактор кода и выберите один из вариантов «Упорядочить с помощью», чтобы удалить неиспользуемые операторы.

2 голосов
/ 15 сентября 2008

Сам терпеть не могу Резарпера. Но я также не выношу грязных высказываний. Я использую надстройку Power Commands для VS, которая имеет удобную команду «Удалить и отсортировать» с помощью операторов (среди прочих хороших вещей).

1 голос
/ 15 сентября 2008

Может помочь использование псевдонимов. Не уверен, что оно того стоит, но вместо:

using System.Web.UI;
using System.Web.Mail;
using System.Web.Security;
... Control ...
... MailMessage ...
... Roles ... 

вы можете использовать:

using W = System.Web;
... W.UI.Control ...
... W.Mail.MailMessage ...
... W.Security.Rolse ...
1 голос
/ 15 сентября 2008

Если вы хотите изменить настройки по умолчанию, используя операторы, которые создаются при создании нового файла, посмотрите каталог C: \ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033 , Он содержит несколько zip-файлов, которые вы можете изменить, чтобы изменить шаблоны для файлов кода (очевидно, переместите структуру каталогов вверх, чтобы изменить другие языки или другие типы файлов).

См. здесь для получения дополнительной информации.

1 голос
/ 15 сентября 2008

VS2008 добавил контекстное меню «Упорядочить использование», в котором есть опция «Сортировать, удалить» и «Удалить и отсортировать», которая будет делать то, что вы хотите для каждого файла. Надстройка Visual Studio Power Commands добавляет контекстное меню в обозревателе решений для проектов и решений, которое представляет собой «Удалить и отсортировать» для всех файлов в проекте и всех проектов в решении, соответственно.

1 голос
/ 15 сентября 2008

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

Вы имеете в виду, что используемые вами пространства имен автоматически добавляются в каждый новый класс? Если да, то Решарпер тоже может это сделать. Кроме того, в нем есть функция для очистки кода в регионе. Решарпер может быть подходящим способом (вы не пожалеете об этом, как я могу сказать из моего собственного опыта).

0 голосов
/ 15 сентября 2008

В VS2008 вы можете щелкнуть правой кнопкой мыши файл CS и выбрать «Организовать использования». Он будет лишен неиспользованного использования и сортирует их для вас тоже. Кроме этого, я бы просто использовал #region. Кроме того, CTRL + M + O свернет все функции ваших регионов и т. Д. Во время разработки. Я использую этот ярлык много!

0 голосов
/ 15 сентября 2008

Resharper - надстройка для Visual Studio - имеет функцию, которая удаляет неподдерживаемые пользовательские файлы из файла, но я не знаю ничего, что делает то, что вы описываете.

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