如何获取父类的子类列表?

时间:2017-10-11 04:22:23

标签: c# class

是否可以获取Parent的班级名称列表以及班级ChildA中的字段名称列表:

我创建了这个类来定义配置代码(因为我不想使用字符串,它不稳定且难以管理):

public class CodeConfiguration
    {
        public class ModuleA
        {
            public const string GroupA = "ProvinCode";
            public const string GroupB = "CountryCode";
        }
        public class ModuleB
        {
            public const string GroupC = "ImportStatus;
            public const string GroupD = "ExecuteStatus";
        }
    }

在数据库中,我的数据表如下

Module  Group   Code    Name
ModuleA GroupA  1       100
ModuleA GroupB  2       1001
ModuleB GroupC  1       Imported
ModuleB GroupD  2       Failed

所以现在我需要获取Module Combobox和Group Combobox的数据 我的预期结果:

模块组合框:{"ModuleA","ModuleB} 模块A的组合框:{"GroupA","GroupB"}

1 个答案:

答案 0 :(得分:1)

您可以使用以下命令获取嵌套类名列表:

var nestedClasses = typeof(CodeConfiguration)
    .GetNestedTypes()
    .Select(_ => _.Name)
    .ToList();

如果要包含私有嵌套类,请将BindingFlags.Public | BindingFlags.NonPublic作为参数传递给.GetNestedTypes()方法。

获取字段名称列表:

var fieldNames = typeof(CodeConfiguration.ModuleA)
    .GetFields()
    .Select(_ => _.Name)
    .ToList();

要包含私有字段,请将BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance作为参数传递给.GetFields()方法。

<小时/> 另请参阅Reflection in the .NET Framework