仅获取和设置公共列表<>类/对象中的成员/字段
本文关键字:对象 字段 成员 获取 设置 列表 | 更新日期: 2023-09-27 18:35:05
我有一个对象/类,我想获取任何公共列表<>成员/字段的列表/数组。 并在稍后设置这些成员。
目前我可以通过以下方式获取所有公共字段:
var fieldValues = obj[index].GetType().GetFields(BindingFlags.Instance | BindingFlags.Public);
一些研究表明我可以测试 GetGenericTypeDefinition() == typeof(List<>),但我不能直接针对 fieldValue 中返回的值进行测试。
因此,在求和中,我想获取对象的所有公共字段。整理列表<>,并设置这些成员。
感谢您提供的任何帮助!
像这样的事情怎么样,
var fieldValues = test.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public);
foreach(var fieldValue in fieldValues)
{
if (fieldValue.FieldType.IsGenericType && fieldValue.FieldType.GetGenericTypeDefinition() == typeof(List<>))
{
fieldValue.SetValue(test, new List<string>()
{
"List Item 1",
"List Item 2"
});
}
}