2 回答
TA贡献1775条经验 获得超11个赞
您的stringProperties枚举不包含任何项目,因为您要求Parent类型为您提供类型的所有属性string- 没有。
var stringProperties = p.GetType().GetProperties()
.Where(p => p.PropertyType == typeof(string));
注意p是类型Parent,所以p.GetType()产量typeof(Parent)。
您需要获取's 实例Child的每个属性值(每个实例) :Parent
var parentProperties = p.GetType().GetProperties();
foreach (var property in parentProperties)
{
var child = property.GetValue(p);
var stringProperties = child.GetType().GetProperties()
.Where(p => p.PropertyType == typeof(string));
// etc
}
TA贡献1803条经验 获得超3个赞
GetProperties 方法仅返回您的类型的公共属性。如果您将 Parent 类的属性更改为以下内容,您应该能够继续前进:
public class Parent
{
public Child1 Child1 { get; set; }
public Child2 Child2 { get; set; }
public Child3 Child3 { get; set; }
}
但是这行代码仍然会返回 null,因为您的子类中没有“父”属性:
var child = property.GetValue(parent);
我希望它有所帮助:D
- 2 回答
- 0 关注
- 161 浏览
添加回答
举报