Ho avuto questo stesso problema, perché stavo creando una DLL personalizzato e solo voluto alcune classi per essere visibile ad un'applicazione che utilizza la DLL. Quindi rimuovo completamente il modificatore per le classi che volevo essere private (all'interno di spazi dei nomi specifici).Le classi sono rimaste accessibili ad altre classi all'interno dello stesso spazio dei nomi nella DLL ma non sono state visualizzate in Intellisense nell'applicazione chiamante. Non c'è bisogno di classi nidificate. L'unica spiegazione che riesco a pensare è che il messaggio di errore dice che non è possibile "esplicitamente" dichiarare privato ... non dice nulla implicitamente.
namespace SmartCardAuthentication
{
class SmartCardIdentity : IIdentity
{
private string _firstName;
private string _lastName;
private string _middleInitial;
....
}
}
Nel esempio di codice di cui sopra, di classe "SmartCardIdentity" è a disposizione di altra classe all'interno dello stesso spazio dei nomi, ma non disponibile a chiamare applicazione quando questa classe è rotolato in una DLL. Non l'ho testato in alcun modo (cioè visibilità da una classe in un namespace diverso all'interno della DLL.).
Cosa succede se voglio che una classe sia visibile solo per le classi in un determinato spazio dei nomi? come si fa, senza dover spostare la classe in un altro? – Ahmed
Fondamentalmente non è possibile. Sarebbe una specie di strana caratteristica avere se mi chiedi, poiché lo stesso spazio dei nomi può esistere in più assiemi, per esempio. – DeCaf
Grazie, immagino che java abbia qualcosa come l'accesso a livello di pacchetto o simile, lo vedrò .. – Ahmed