Parece que Doxygen cree que el valor predeterminado para las clases y estructuras C# es público, no interno, y los documentará como tal. Sin embargo, si utiliza explícitamente el modificador de acceso C# internal
, Doxygen lo respeta (hasta cierto punto).Por lo tanto, correr Doxygen en esta fuente:
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;
}
}
que obtiene esta lista de clase en la producción de 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.
Sin embargo, usted todavía consigue las clases de forma explícita internos y estructuras en la lista de Doxygen de clases en "Referencia del espacio de nombres:"
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...
Pero tenga en cuenta que el "Más ... "el enlace a la documentación real (así como también el enlace disponible en el nombre de clase/estructura asociado) no está disponible para los dos primeros.
Por lo tanto, se puede obtener alguna del comportamiento que busca mediante el uso explícito modificador de acceso internal
C# 's, pero no necesariamente todas del comportamiento que busca. (A modo de comparación, VSDocMan procesa el código fuente anterior exactamente de la manera en que lo desea: solo se documenta explícitamente la clase pública y la estructura, sin mención explícita ni implícita de las clases o estructuras internas).
Estas son clases internas de C# que son diferentes a las clases privadas. Tienen alcance de conjunto: solo otros códigos dentro del mismo conjunto pueden verlos. No quiero que estas clases sean visibles en la documentación, solo quiero que las clases públicas sean visibles. –