2013-03-03 24 views
7

Uważam, że czasami potrzebuję mieć wiele przestrzeni nazw w projekcie, nad którym pracuję - czy są jakieś problemy, które mogą wynikać z posiadania wielu przestrzeni nazw w tym samym projekcie?
Alternatywą jest oczywiście posiadanie wielu projektów (w przestrzeni nazw) w Rozwiązaniu.Wiele przestrzeni nazw w jednym projekcie

+1

"Alternatywą jest oczywiście posiadanie wielu projektów w Rozwiązaniu." - to zwykle lepsza metoda. –

+0

@MitchWheat Wydaje się, że jest to bardziej "uporządkowane" podejście, ale wszystko, co naprawdę robi, to zaśmiecanie mojego rozwiązania. Większym problemem jest to, że tworzy wiele plików podczas kompilacji. – Acidic

+0

Ale to zupełnie inny problem z innym rozwiązaniem. –

Odpowiedz

7

Tak, w porządku. Często moje przestrzenie nazw pasują do struktury folderów projektu. Zatem przestrzeń nazw najwyższego poziomu może być taka sama dla całego projektu, ale istnieje wiele przestrzeni nazw podrzędnych.

Cele przestrzeni nazw to (1) organizacja i (2) unikanie kolizji nazw, niekoniecznie w tej kolejności. Natomiast rozdzielanie rzeczy na wiele projektów jest bardziej możliwe, ponieważ potrzebujesz wielu plików binarnych lub chcesz współdzielić kod pomiędzy wieloma rozwiązaniami. Są to pewne problemy ortogonalne.

+1

Ponadto studio wizualne tworzy przestrzenie nazw w nowych plikach .cs automatycznie, korzystając z tej struktury. –

1

Tak wiele klas do pojedynczego obszaru nazw. Wiele przestrzeni nazw w projekcie jest całkowicie w porządku. To jest kosmetyczne.

1

Odpowiedź na to pytanie, bez wdawania się w sprawdzone metody, polega na tym, że nie ma problemów technicznych związanych z używaniem wielu przestrzeni nazw w jednym projekcie.

Jednak studio graficzne obsługuje tylko jedną bazową przestrzeń nazw, która znajduje się we właściwościach projektu (prawy przycisk myszy znajduje się w eksploratorze rozwiązań w samym projekcie) i za każdym razem gdy tworzy się nowy plik, zostanie utworzony z tą domyślną przestrzenią nazw. (jeśli jest to root) lub domyślna przestrzeń nazw i dowolna struktura folderów.

Nie jest to problem sam w sobie, ale musisz ręcznie sprawdzić każdy nowy plik C# dodany do projektu i odpowiednio zmienić przestrzeń nazw, jeśli dany plik nie będzie używał domyślnej przestrzeni nazw dla projektu.