10

I progetti vengono spesso suddivisi in cartelle e in genere tali cartelle vengono mappate in spazi dei codici in codice. Tuttavia, in molti dei miei progetti principali ho classi che ho fuso in namespace esistenti, ad esempio ho una libreria di riferimento MVC che aggiunge altri tipi in System.Web.Mvc o System.ComponentModel.DataAnnotations, ad esempio.Come sovrascrivere la cartella automatica VS2010 -> mappatura dello spazio dei nomi in nuovi file cs

In altri progetti, potrei avere una suite di interfacce e una suite di implementazioni predefinite di tali interfacce; quindi potrei dividere i file di codice in due cartelle separate (ad esempio "Oggetti" e "Interfacce") ma non voglio avere spazi di sottozona e .

Allo stesso modo, spesso scrivo metodi di estensione per tipi in altre librerie - ad es. System.String, che unisco nello spazio dei nomi System in modo che siano già "lì" non appena si fa riferimento all'assieme.

Così dato una struttura di progetto come questo (in risposta alla prima risposta, questo progetto ha lo scopo di produrre un singolo assieme con tutte gli spazi dei nomi, e potrebbe essere una dll che potrebbe essere firmato):

Our.Core.Library 
|->System 
| |->StringExtensions.cs 
|->System.Web.Mvc 
| |->AnotherModelBinder.cs 
|->OurCoreClass.cs 

In quanto sopra, voglio che i nuovi file aggiunti alla radice siano nello spazio dei nomi Our.Core.Library, ma voglio aggiungere nuovi file alle cartelle System.Web.Mvc e System in System e System.Web.Mvc rispettivamente. Ma VS darà loro uno spazio dei nomi predefinito di Our.Core.Library.System.

È un piccolo difetto, ma mi piacerebbe essere in grado di sovrascrivere lo spazio dei nomi predefinito per una cartella di codice specifica in modo da poterlo controllare. Qualche idea su come ottenere questo? Ho provato uno spazio dei nomi predefinito vuoto per il progetto, che potrebbe logicamente farlo funzionare per le sottocartelle, ma ovviamente non per la radice; tuttavia, la pagina VS Properties non accetta uno spazio dei nomi vuoto.

Idealmente sarebbe una soluzione che posso facilmente replicare in tutto il nostro team di sviluppo per consentire ad altri sviluppatori di essere in grado di aggiungere file di codice mentre si aderisce alla struttura dello spazio dei nomi impostata in fase di progettazione/architetto.

risposta

0

In sostanza l'unico modo ho intenzione di essere in grado di fare questo è scrivere la mia estensione in Visual Studio. Potrebbe anche richiedere il proprio wizard di progetto o oggetto: se riesco a ottenere qualsiasi cosa funzionante, lo posterò qui in futuro.

0

Ogni impostazione del progetto C# ha un'opzione Default namespace nella scheda dell'applicazione che è possibile modificare in qualsiasi altro valore che avrà effetto quando si aggiungono più file al progetto. V'è una sola impostazione consentita per progetto

enter image description here

È possibile interrompere il progetto in più progetti e hanno il difetto essere diverso per i diversi progetti

+1

Sono a conoscenza dell'impostazione dello spazio dei nomi predefinita (vedere i miei commenti di chiusura nella domanda) e più progetti non sono adatti poiché desidero i diversi spazi dei nomi in una DLL, senza doverli unire data la complessità del processo di compilazione e complicazioni con la firma, ecc. –