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 關注
- 182 瀏覽
添加回答
舉報