Остановить Visual Studio от применения директив за пределами пространства имен

Есть ли параметр в Visual Studio (или Resharper), который позволяет указать, какие пространства имен должны быть по умолчанию и в какой области они помещены?

По умолчанию для проекта MVC, например,

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Namespace
{
    public class Class1
    {
    }
}

но Resharper и Stylecop жалуются:

Все используемые директивы должны быть помещены внутри пространства имен. [StyleCop Rule: SA1200]
Использование директивы не требуется кодом и может быть безопасно удалено

Есть ли способ сделать по умолчанию просто:

namespace Namespace
{
    public class Class1
    {
    }
}

Ответ 1

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

Если вы все же, все шаблоны файлов доступны и могут быть отредактированы. См. Ответ Как отредактировать шаблоны Visual Studio для нового класса/интерфейса С#?, чтобы подробно описать, где они живут в каждой версии Visual Studio.

Как только вы там, вы можете изменить макет, так что, например, базовый класс выглядит следующим образом:

using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ >= 3.5)using System.Linq;
$endif$using System.Text;
$if$ ($targetframeworkversion$ >= 4.5)using System.Threading.Tasks;
$endif$
namespace $rootnamespace$
{
    class $safeitemrootname$
    {
    }
}

Вы можете изменить это на следующее или подобное:

namespace $rootnamespace$
{
    using System;
    using System.Collections.Generic;
    $if$ ($targetframeworkversion$ >= 3.5)using System.Linq;
    $endif$using System.Text;
    $if$ ($targetframeworkversion$ >= 4.5)using System.Threading.Tasks;
    $endif$

    class $safeitemrootname$
    {
    }
}

Может быть довольно много файлов, чтобы изменить, хотя!

Ответ 2

Вы можете установить это в Re-sharpper.

Re-sharpper > Параметры > С# > Импорт имён > Добавить с помощью директивы в самую глубокую область.