2009-02-18 27 views
14

Estoy usando Doxygen para generar documentación para nuestra API, escrito en C#. Sin embargo, expone miembros privados/protegidos. ¿Hay alguna manera de ocultarlos?Doxygen: ocultar el método privado/protegido ... y consejos

me di cuenta de cómo ocultar archivos: EXCLUDE = Lista de nombres de archivo

Sin embargo, necesito más granularidad y por lo tanto los usuarios escudo del ruido API innecesaria. Se apreciará un archivo Doxygen de muestra, así como sugerencias/trucos.

¿Qué herramientas usas para generar API a partir del código fuente?

Me siento un poco abandonado en el siglo 18 como uso Doxygen en C# a través de C++.

+0

Si doxygen es solo un medio para generar una buena documentación de API, usaría [Sandcastle/SHFB] (https://github.com/EWSoftware/SHFB) o [DocFX] (https: //dotnet.github. io/docfx /) en su lugar. Cuando consideré doxygen para C# hace unos diez años que no lo veía adaptar nuevas funciones de idioma lo más rápido que los adaptó en nuestro código de producción, así que fuimos con castillos de arena. – mbx

Respuesta

17

No sé qué tan bien C# es compatible con Doxygen.

Para ocultar los miembros privados, cambia Doxyfile archivo de configuración de la siguiente manera:

EXTRACT_PRIVATE  = YES 

Muchas otras opciones se pueden configurar para varios tipos de extracción/ocultar elementos de código, por ejemplo, citando Doxyfile sí:

# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
# documentation are documented, even if no documentation was available. 
# Private class members and static file members will be hidden unless 
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES 

EXTRACT_ALL   = YES 

# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
# will be included in the documentation. 

EXTRACT_PRIVATE  = YES 

# If the EXTRACT_STATIC tag is set to YES all static members of a file 
# will be included in the documentation. 

EXTRACT_STATIC   = YES 

# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
# defined locally in source files will be included in the documentation. 
# If set to NO only classes defined in header files are included. 

EXTRACT_LOCAL_CLASSES = YES 

# This flag is only useful for Objective-C code. When set to YES local 
# methods, which are defined in the implementation section but not in 
# the interface are included in the documentation. 
# If set to NO (the default) only methods in the interface are included. 

EXTRACT_LOCAL_METHODS = YES 

# If this flag is set to YES, the members of anonymous namespaces will be 
# extracted and appear in the documentation as a namespace called 
# 'anonymous_namespace{file}', where file will be replaced with the base 
# name of the file that contains the anonymous namespace. By default 
# anonymous namespace are hidden. 

EXTRACT_ANON_NSPACES = NO 

# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
# undocumented members of documented classes, files or namespaces. 
# If set to NO (the default) these members will be included in the 
# various overviews, but no documentation section is generated. 
# This option has no effect if EXTRACT_ALL is enabled. 

HIDE_UNDOC_MEMBERS  = NO 

# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
# undocumented classes that are normally visible in the class hierarchy. 
# If set to NO (the default) these classes will be included in the various 
# overviews. This option has no effect if EXTRACT_ALL is enabled. 

HIDE_UNDOC_CLASSES  = NO 

# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
# friend (class|struct|union) declarations. 
# If set to NO (the default) these declarations will be included in the 
# documentation. 

HIDE_FRIEND_COMPOUNDS = NO 
3

algunas posibilidades, desde el Doxygen manual:

HIDE_UNDOC_MEMBERS, HIDE_UNDOC_ CLASES: Obviamente solo funciona si solo documentas a los miembros públicos.

INTERNAL_DOCS: Le permite utilizar el marcado \ interno para excluir los comentarios de la versión "pública" de la documentación.

ENABLED_SECTIONS: Son versión más general de INTERNAL_DOCS

13

Mira la bandera @cond para Doxygen. En C# Me ocultar algunos de nuestros miembros de cifrado de la contraseña de esta manera:

//! @cond 
    private const String ENCRYPTEDFLAG = "xxxENCFLAGxxx"; 
    private const String SEED = "[email protected]_seed"; 
    //! @endcond 

La documentación doxygen tendría usted cree que necesita un símbolo condicional definido a Doxygen y se utiliza en la línea @cond, pero que no funcionó para yo. Este método lo hizo.

8

Esto funciona para mí, para ocultar grandes trozos de código y la documentación:

/*! \cond PRIVATE */ 
<here goes private documented source code> 
/*! \endcond */ 

Ejecutar con ENABLED_SECTIONS = PRIVATE para crear su versión interna de los documentos. Puede tener varias condiciones y habilitarlas/deshabilitarlas según la audiencia.

Para ocultar sólo una parte de un bloque de documentación, utilice \internal (esconderá hasta el final del bloque a no ser que se encuentra \endinternal)


Nota: se puede usar @ notación si lo prefiere por encima de las barras invertidas.