C# doxygen选项的意外结果“;模板关系”;:不影响使用C的类层次结构树页面#

C# doxygen选项的意外结果“;模板关系”;:不影响使用C的类层次结构树页面#,c#,generics,doxygen,hierarchy,C#,Generics,Doxygen,Hierarchy,(使用Doxygen V 1.8.16) 此选项的描述为“如果模板关系标记设置为是,则继承和协作图将显示模板及其实例之间的关系。” 但是我无法在类层次结构页面上使用它。它始终在与泛型定义本身相同的“级别”上,在任何树结构之外显示泛型类的特定类型变体 我试图使实现泛型类特定类型的变体看起来是从泛型类“派生”的,或者更确切地说是基于泛型类的。 当我转到GenericClass的类页面时,它实际上似乎工作得很好,在那里看起来很完美: 主要问题:如何使图形(理想情况下是文本)类层次结构页面显示与类页

(使用Doxygen V 1.8.16) 此选项的描述为“如果模板关系标记设置为是,则继承和协作图将显示模板及其实例之间的关系。”

但是我无法在类层次结构页面上使用它。它始终在与泛型定义本身相同的“级别”上,在任何树结构之外显示泛型类的特定类型变体

我试图使实现泛型类特定类型的变体看起来是从泛型类“派生”的,或者更确切地说是基于泛型类的。 当我转到GenericClass的类页面时,它实际上似乎工作得很好,在那里看起来很完美:

主要问题:如何使图形(理想情况下是文本)类层次结构页面显示与类页面上显示的版本类似的关系

下面是用于我测试的简单示例的代码:

namespace ClassLibrary1
{
    /// <summary>
    /// A Generic Class.. variants usually defined inline as a member of another class
    /// </summary>
    /// <typeparam name="T">type passed to the generic class upon declaration</typeparam>
    public class GenericClass<T>
    {
        /// <summary>
        /// the member of type T held by the generic class
        /// </summary>
        public T member;

        /// <summary>
        /// nothing special
        /// </summary>
        public int aNonGenericMember;
    }

    /// <summary>
    /// Holds a couple of variants of GenericClass
    /// </summary>
    public class HolderOfGenericClassVariants
    {
        /// <summary>
        /// string variant of GenericClass
        /// </summary>
        public GenericClass<string> stringVariant;

        /// <summary>
        /// float Variant of GenericClass
        /// </summary>
        public GenericClass<float> floatVariant;
    }
    /// <summary>
    /// Holds a couple of variants of GenericClass, derived to ensure heirarchy shows in docs
    /// </summary>
    public class DerivedHolder : HolderOfGenericClassVariants
    {
        /// <summary>
        /// int Variant of GenericClass
        /// </summary>
        public GenericClass<int> intVariant;
    }
}
命名空间类库1
{
/// 
///泛型类。通常内联定义为另一个类的成员的变体
/// 
///声明时传递给泛型类的类型
公共类泛型类
{
/// 
///泛型类持有的类型为T的成员
/// 
公共事务委员会成员;
/// 
///没什么特别的
/// 
公共国际基金会成员;
}
/// 
///包含几个GenericClass的变体
/// 
公共类持有者通用类变体
{
/// 
///GenericClass的字符串变量
/// 
公共泛型类stringVariant;
/// 
///泛型类的浮点变量
/// 
公共泛型类浮动变量;
}
/// 
///保存GenericClass的两个变体,派生该变体以确保继承权在文档中显示
/// 
公共类派生持有者:HolderOfGenericClassVariants
{
/// 
///泛型类的int变量
/// 
公共泛型类intVariant;
}
}
我应该提到:我还尝试将以下内容添加到代码文件中,专门供doxygen使用:

//! \class GenericClass<string>
//! \extends GenericClass\<T>
//! \brief Concrete variant of Generic class
/\类泛型类
//! \扩展泛型类\
//! \泛型类的简单具体变体
但这会导致两个版本(我的版本和代码中的版本)都出现在层次结构页面上,这可能更令人困惑:

您提到的是doxygen版本1.8.6,这是正确的,因为这是2013年12月的版本,当前版本是1.8.16。此外,还请添加您看到图像的页面名称(如html/inherits.html,以便于参考和讨论)。还请提及与默认Doxyfile不同的所有标志(由于1.8.15,这很容易通过
doxygen-x
)获得)。看起来您使用的是1.8.16。当你认为这是一个错误,请在错误的问题。。我的错。。在输入Q时没有输入“1”。版本确实是1.8.16。。现在将编辑Q。关于其他旗帜。。我从默认的doxy文件开始,将其更改为使用java/c#解析,并设置了Q中提到的一个模板关系标志。不确定这是否是一个bug,或者我只是错过了配置中的其他内容。。你觉得呢?我觉得你在配置中并没有遗漏什么。