2009-02-18 6 views
14

Ich benutze Doxygen, um Dokumentation für unsere API zu generieren, geschrieben in C#. Es stellt jedoch private/geschützte Mitglieder zur Verfügung. Gibt es eine Möglichkeit, diese zu verstecken?Doxygen: private/geschützte Methode verstecken ... und Tipps

habe ich herausgefunden, wie Dateien zu verstecken: EXCLUDE = Liste der Dateinamen

Doch ich mehr Granularität müssen und damit Abschirmung Benutzer von unnötigem API Lärm. Eine Doxygen-Beispieldatei wäre ebenso hilfreich wie Tipps/Tricks.

Mit welchen Tools generieren Sie API aus dem Quellcode?

Ich fühle mich im 18. Jahrhundert etwas verlassen, da ich Doxygen in C# über C++ verwende.

+0

Wenn doxygen nur Mittel ist, um eine gute API-Dokumentation zu erzeugen, würde ich [Sandcastle/SHFB] (https://github.com/EWSoftware/SHFB) oder [DocFX] (https: //dotnet.github. io/docfx /) statt. Als ich vor ungefähr einem Jahrzehnt Doxygen für C# in Betracht zog, sah ich nicht, dass neue Sprachfunktionen so schnell angepasst wurden, wie wir sie in unserem Produktionscode angepasst hatten, also gingen wir mit Sandcastle. – mbx

Antwort

17

Ich weiß nicht, wie gut C# von Doxygen unterstützt wird.

Für private Mitglieder verstecken, ändern Sie Doxyfile Konfigurationsdatei wie folgt:

EXTRACT_PRIVATE  = YES 

Viele andere Optionen können für verschiedene Arten von Extraktion/Ausblenden Codeelemente eingestellt werden, zB unter Berufung auf Doxyfile selbst:

# 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

einige Möglichkeiten, von der Doxygen manual:

HIDE_UNDOC_MEMBERS, HIDE_UNDOC_ KLASSEN: Offensichtlich funktioniert nur, wenn Sie nur die öffentlichen Mitglieder dokumentieren.

INTERNAL_DOCS: Ermöglicht die Verwendung des internen Markups, um Kommentare von der "öffentlichen" Version der Dokumentation auszuschließen.

ENABLED_SECTIONS: Sind allgemeinere Version von INTERNAL_DOCS

13

Überprüfen Sie die @cond Flagge für doxygen aus. In C# blende ich einige unserer Passwort-Verschlüsselung Mitglieder wie folgt aus:

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

Die doxygen Dokumentation Sie würden glauben, dass Sie ein bedingtes Symbol müssen definiert auf der @cond Linie doxygen und verwendet, aber das hat nicht funktioniert für mich. Diese Methode hat es getan.

8

Dies funktioniert für mich, große Stücke von Code und Dokumentation zu verstecken:

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

Run mit ENABLED_SECTIONS = PRIVATE Ihre interne Version der Dokumente zu erstellen. Sie können mehrere Bedingungen haben und diese je nach Zielgruppe aktivieren/deaktivieren.

Um nur ein Teil einer Dokumentation Block zu verstecken, verwenden \internal (wird bis zum Ende des Blocks verstecken, es sei denn \endinternal gefunden wird)


Hinweis: Sie @ Schreibweise verwenden können, wenn Sie es über Schrägstriche bevorzugen.