Domanda

ho una libreria di classi che ha un paio di spazi dei nomi che contengono i tipi solo interne.

Tuttavia, quando si utilizza la libreria di classi in un progetto di applicazione, gli spazi dei nomi si presenta in IntelliSense, ma naturalmente sono vuote. C'è un modo per me di nascondere completamente gli spazi dei nomi quando si utilizza IntelliSense in altri progetti?

Ho cercato di applicare EditorBrowsableAttribute a tutte le classi interne pure, ma quello che mi piacerebbe fare sarebbe quella di applicare tale allo spazio dei nomi, che è ovviamente impossibile.

In alternativa è, se mi preoccupo abbastanza su questo, l'unica opzione che ho per spostare solo i tipi in uno spazio dei nomi che contiene i tipi pubblici?

È stato utile?

Soluzione

Dipende da come si sta referenziare la tua libreria di classi:

  • Se avete il progetto di libreria di classi contenute all'interno della soluzione e utilizzare un riferimento al progetto, avrete sempre vedere che spazio dei nomi vuoto tramite Intellisense.
  • Se si fa riferimento a una DLL compilata della vostra libreria di classi, non sarà possibile visualizzare lo spazio dei nomi iniziano ad essere presenti intellisense, a condizione che contenga solo i membri interni.

Prova questo:

namespace ClassLibrary1
{
    namespace Internal
    {
        internal class InternalClass
        {
            public int internalStuff { get; set; }
        }
    }

    namespace Public
    {
        public class PublicClass
        {
            public int publicStuff { get; set; }
        }
    }
}

Se si fa riferimento a questo tramite un riferimento al progetto, si vedrà lo spazio dei nomi vuoto. Se si fa riferimento a una DLL di esso, non sarà.

Altri suggerimenti

mi è venuta in contro questo prima e ho trovato nessuna soluzione, ma solo una soluzione che può o non può funzionare nel progetto. Invece di definire uno spazio dei nomi che si potrebbe usare una classe statica annidati?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top