gpt4 book ai didi

c# - 如何获取嵌套属性

转载 作者:太空狗 更新时间:2023-10-29 21:11:04 26 4
gpt4 key购买 nike

我想检索一个 PropertyInfo,这里是代码:

string propertyName="Text";
PropertyInfo pi = control.GetType().GetProperty(propertyName);

它工作正常,但如果我想检索嵌套属性,它返回 null :

string propertyName="DisplayLayout.Override.RowSelectors";
PropertyInfo pi = control.GetType().GetProperty(propertyName);

有什么方法可以获取嵌套属性吗?

最好的问候,

弗洛里安

编辑:我现在有一个新问题,我想获得一个数组属性:

string propertyName="DisplayLayout.Bands[0].Columns";
PropertyInfo pi = control.GetType().GetProperty(propertyName)

谢谢

最佳答案

是的:

public PropertyInfo GetProp(Type baseType, string propertyName)
{
string[] parts = propertyName.Split('.');

return (parts.Length > 1)
? GetProp(baseType.GetProperty(parts[0]).PropertyType, parts.Skip(1).Aggregate((a,i) => a + "." + i))
: baseType.GetProperty(propertyName);
}

调用:

PropertyInfo pi = GetProp(control.GetType(), "DisplayLayout.Override.RowSelectors");

递归取胜!

关于c# - 如何获取嵌套属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3111725/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com