Пространства имен и папка - PullRequest
0 голосов
/ 04 августа 2009

Хорошо, я думаю, пространства имен должны быть такими же, как вложенные папки, в которых они находятся? Я продолжаю получать сообщения о том, что пространство имен должно быть xxx.yyy.zzz.

Пример:

Folder1
    Folder2
        MyControl.cs

У меня есть пространство имен, определенное как:

namespace CustomControls
{

...

}

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

Так есть ли прямая связь с файловой структурой и пространствами имен? Вы вынуждены иметь с ними тесную связь?

Ответы [ 4 ]

6 голосов
/ 04 августа 2009

Это предупреждение обычно сообщает Resharper. Чтобы исключить папку из дерева папок Resharper - сравнение пространства имен, перейдите в список свойств папки в VS и установите Namespace Provider в false .

3 голосов
/ 04 августа 2009

Я не знаю, есть ли в ASP.NET какие-то особые правила (из-за автоматической компиляции), но, конечно, в самом C # нет правил , говорящих о том, что вы должны организовать свои папки так, чтобы они соответствовали пространствам имен. Это хорошая идея с точки зрения ремонтопригодности.

Вы уверены, что это компилятор, а не просто еще один кусочек ASP.NET (или даже ReSharper?) С жалобами?

1 голос
/ 04 августа 2009

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

Ошибка, которую вы получаете, не имеет никакого отношения к вашему компилятору.

У вас также нет тега, в котором указано, какую Dev IDE вы используете.

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

Это должна быть ошибка, исходящая от ReSharper, а не от компилятора Visual Studio. Сейчас у меня действительно проблема напротив : я пытаюсь заставить VS2008 автоматически называть мои пространства имен на основе структуры моей вложенной папки, такой как Folder1.Folder2.MyProjectName, но она настаивает на присвоении ей имени "flat" MyProjectName! Как сказал Джон, C # сам по себе не зависит от номенклатуры пространства имен.

...