2013-03-03 15 views
7

Trovo che a volte ho la necessità di avere più spazi dei nomi in un progetto su cui sto lavorando - ci sono problemi che possono sorgere dall'avere più spazi dei nomi nello stesso progetto?
L'alternativa è ovviamente avere più progetti (per spazio dei nomi) nella Soluzione.Spazi dei nomi multipli in un singolo progetto

+1

"L'alternativa è ovviamente avere più progetti nella soluzione." - Di solito è un metodo migliore. –

+0

@ MitchWheat Sembra essere l'approccio più "ordinato", ma tutto ciò che fa davvero è ingombrare la mia soluzione. Un problema più grande è che produce più file sulla compilazione. – Acidic

+0

Ma questo è un problema completamente diverso con una soluzione diversa. –

risposta

7

Sì, va bene. Spesso i miei spazi dei nomi si allineano alla struttura delle cartelle del progetto. Quindi lo spazio dei nomi di primo livello potrebbe essere lo stesso per l'intero progetto, ma ci sarebbero più spazi secondari.

Gli scopi dei namespace sono (1) l'organizzazione e (2) evitare le collisioni di denominazione, non necessariamente in questo ordine. Considerando che, separare le cose in più progetti è più perché vuoi più binari o vuoi condividere il codice tra più soluzioni. Queste sono preoccupazioni un po 'ortogonali.

+1

Inoltre, Visual Studio crea automaticamente spazi dei nomi in nuovi file .cs utilizzando questa struttura. –

1

Sì, molte classi in un singolo spazio dei nomi. Molti spazi dei nomi in un progetto sono assolutamente soddisfacenti. È cosmetico

1

La risposta a questa domanda, senza entrare nelle migliori pratiche, è che non ci saranno problemi tecnici dall'utilizzo di più spazi dei nomi in un unico progetto.

Tuttavia, Visual Studio supporta solo uno spazio dei nomi di base, che si trova nelle proprietà del progetto (proprietà del clic destro in Solution Explorer sul progetto stesso) e ogni volta che si crea un nuovo file, verrà creato con questo spazio dei nomi predefinito (se in root), o lo spazio dei nomi predefinito più la struttura della cartella che si ha.

Non è un problema di per sé, ma è necessario controllare manualmente ogni nuovo file C# che si aggiunge al progetto e modificare lo spazio dei nomi di conseguenza se quel particolare file non utilizzerà lo spazio dei nomi predefinito per il progetto.