Как сделать все классы IDisposable цветными по-разному в среде Visual Studio?
Название охватывает все. Я бы хотел, чтобы классы, реализующие IDisposable, отображались в определенном цвете, поэтому я могу знать, должен ли я обернуть их в блок использования. Есть ли настройка или процесс, с помощью которого вы можете расширить IDE?
Ответы
Ответ 1
Конечно, это возможно, хотя это не так просто, как просто изменение настройки. Вам нужно будет написать дополнение Visual Studio для выполнения этого.
Посетите http://msdn.microsoft.com/en-us/vsx/bb980955.aspx, чтобы начать. Как указывают другие. Это не для слабонервных.
Здесь ссылка, которая может указывать на то, что вы ищете: http://msdn.microsoft.com/en-us/library/bb166778.aspx
Ответ 2
Я предполагаю, что это станет проще/без расширения, как только Roslyn выйдет, но это сейчас нелегко, потому что вы не можете легко получить доступ к коду как С# из расширения.
В Resharper это легко, хотя! Мой пример был протестирован в ReSharper 9.0. К сожалению, нет простого способа дать вам это.
- Resharper → Параметры → Проверка кода → Пользовательские шаблоны → Добавить, диалог всплывает
- Выберите С# (верхний левый)
- Выберите "Найти" (вверху справа)
- Добавьте шаблон
new $disp$($args$)
- Тяжесть рисунка: Показать как предложение
- Описание: Одноразовая конструкция
- "Добавить заполнитель" типа: Тип, имя:
disp
, введите: System.IDisposable
- "Добавить заполнитель" типа: Аргументы, имя:
args
Сохраните, и теперь вы получите "предложение" всякий раз, когда строится новое одноразовое хранилище.
Добавление шаблона $disp$ $var$ = $exp$;
также может оказаться полезным. Все вещи, равные exp, определяются как выражение.
![enter image description here]()
Ответ 3
Вы не можете. Для этого потребуется поддержка языкового обслуживания, и ни С#, ни VB.Net не предоставляют эту функцию.
Не может быть слишком сильным слова. Это, безусловно, возможно сделать с помощью надстройки, которая делает глубокую проверку кода и вычисляет иерархии. Однако это очень нетривиальная задача.
Ответ 4
Конечно, существует большой набор инструментов для построения VS-расширений, см. Visual Studio 2008 SDK 1.1
Но время, необходимое для создания такой надстройки, потребует больше времени, которое вы потратите, просматривая компоненты и определяя, являются ли они одноразовыми или нет.
Ответ 5
Я не уверен, если FXCop или StyleCop могут это сделать уже. Но тогда это будет предложение/предупреждение после компиляции.
Решайер предлагает это, я думаю.
Ответ 6
Слово на улице - это то, что будет намного проще в VS.NET 2010. Редактор переписывается в WPF.
Ответ 7
Может быть, я плохой человек для этого, но я недавно использовал этот кусок кода:
public static void BulkDispose(object[] objects)
{
foreach (object o in objects)
{
if (o != null)
{
if (o is IDisposable)
{
IDisposable disposable = o as IDisposable;
disposable.Dispose();
}
}
}
}