是否可以获取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"}
答案 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