Doxygen, очевидно, считает, что по умолчанию для классов и структур C # - public, а не внутренняя, и будет документировать их как таковые. Однако, , если вы явно используете модификатор доступа C # internal
, Doxygen уважает его (в некоторой степени). Итак, запуск Doxygen на этом источнике:
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;
}
}
возвращает вам этот список классов в выводе 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.
Однако вы по-прежнему получаете явно внутренние классы и структуры в списке классов Doxygen в разделе «Ссылка на пространство имен:»
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...
Но обратите внимание, что ссылка «Подробнее ...» на фактическую документацию (а также ссылка, доступная в связанном имени класса / структуры) недоступна для первых двух.
Таким образом, вы можете получить некоторые поведения, которое вы ищете, используя явный internal
модификатор доступа C #, но не обязательно все поведения, которое вы ищете. (Для сравнения, VSDocMan обрабатывает исходный код выше в точности так, как вы хотите: документированы только явно открытый класс и структура, без упоминания ни явных, ни неявных, внутренних классов или структур.)