Doxygen a quanto pare pensa che il valore predefinito per le classi C# e le strutture sia pubblico, non interno e le documenterà come tali. Tuttavia, se si utilizza esplicitamente il modificatore di accesso C# internal
, Doxygen lo rispetta (in una certa misura).Così, in esecuzione Doxygen su questa fonte:
namespace Test_Library
{
/// <summary>
/// I should be documented.
/// </summary>
public class ExplicitPublicClass
{
public int Field;
}
/// <summary>
/// I should NOT be documented.
/// </summary>
class ImplicitInternalClass
{
public int Field;
}
/// <summary>
/// I should NOT be documented.
/// </summary>
internal class ExplicitInternalClass
{
public int Field;
}
/// <summary>
/// I should be documented.
/// </summary>
public struct ExplicitPublicStruct
{
public int Field;
}
/// <summary>
/// I should NOT be documented.
/// </summary>
struct ImplicitInternalStruct
{
public int Field;
}
/// <summary>
/// I should NOT be documented.
/// </summary>
internal struct ExplicitInternalStruct
{
public int Field;
}
}
si ottiene questo elenco classe in uscita di Doxygen:
C ExplicitPublicClass I should be documented.
C ExplicitPublicStruct I should be documented.
C ImplicitInternalClass I should NOT be documented.
C ImplicitInternalStruct I should NOT be documented.
Tuttavia, si ha ancora ottenere le classi in modo esplicito interni e le strutture nella lista di Doxygen di classi sotto "Namespace Reference:"
class ExplicitInternalClass
I should NOT be documented.
struct ExplicitInternalStruct
I should NOT be documented.
class ExplicitPublicClass
I should be documented. More...
struct ExplicitPublicStruct
I should be documented. More...
class ImplicitInternalClass
I should NOT be documented. More...
struct ImplicitInternalStruct
I should NOT be documented. More...
Ma notare che il "Altro ... "il collegamento alla documentazione effettiva (così come il link disponibile nella classe associata/nome della struttura) non è disponibile per i primi due.
Quindi, è possibile ottenere alcuni del comportamento che si sta cercando utilizzando esplicito modificatore di accesso internal
C# 's, ma non necessariamente tutte del comportamento che si sta cercando. (A titolo di confronto, VSDocMan elabora il codice sorgente sopra esattamente nel modo in cui lo si desidera: solo la classe e la struttura esplicitamente pubbliche sono documentate, senza menzionare né le classi o le strutture interne esplicitamente, né implicitamente.)
fonte
2017-09-12 14:51:31
Queste sono classi interne C# che sono diverse dalle classi private. Hanno un ambito di assemblaggio: solo gli altri codici all'interno dello stesso assieme possono vederli. Non voglio che queste classi siano visibili nella documentazione, voglio solo vedere le classi pubbliche visibili. –