Pergunta

Eu estou usando Doxygen para gerar documentação para a nossa API, escrito em C #. No entanto, ele expõe os membros private / protected. Existe uma maneira de esconder isso?

Eu descobri como para ocultar arquivos: Excluir = Lista de nomes de arquivo

No entanto, eu preciso de mais granularidade e, assim, proteger os usuários de ruído API desnecessário. Um arquivo Doxygen amostra seria apreciada, bem como dicas / truques.

Quais as ferramentas que você usa para gerar API a partir do código fonte?

Eu me sinto um pouco deixado no século 18 como eu uso Doxygen em C # por meio de C ++.

Foi útil?

Solução

Eu não sei o quão bem C # é suportado pelo Doxygen.

Para esconder os membros privados, você muda arquivo de configuração Doxyfile como a seguir:

EXTRACT_PRIVATE        = YES

Muitas outras opções podem ser definidas para vários tipos de extração / ocultando elementos de código, por exemplo, citando-se Doxyfile:

# 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

Outras dicas

Confira a bandeira @cond para doxygen. Em C # Eu esconder alguns de nossos membros criptografia de senha assim:

    //! @cond
    private const String ENCRYPTEDFLAG = "xxxENCFLAGxxx";
    private const String SEED = "hi_i_r_@_seed";
    //! @endcond

A documentação doxygen querem fazer crer que você precisa de um símbolo condicional definido para doxygen e usado na linha @cond, mas que não funcionou para mim. Este método fez.

Isso funciona para mim, para esconder grandes pedaços de código e documentação:

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

Executar com ENABLED_SECTIONS = PRIVATE para criar sua versão interna dos docs. Você pode ter várias condições e ativar / desativar-los de acordo com o público.

Para ocultar apenas parte de um bloco de documentação, uso \internal (vai esconder até o fim do bloco, a menos \endinternal é encontrado)


Nota:. Você pode usar @ notação se preferir mais barras invertidas

Algumas possibilidades, desde o doxygen manual:

HIDE_UNDOC_MEMBERS, HIDE_UNDOC_CLASSES:. Obviamente só funciona se você só documentar os membros públicos

INTERNAL_DOCS:. Permite que você use o \ marcação interna para excluir comentários da versão "pública" da documentação

ENABLED_SECTIONS: são a versão mais geral de INTERNAL_DOCS

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top