gpt4 book ai didi

c# - C#获取属性值

转载 作者:太空宇宙 更新时间:2023-11-03 20:52:38 25 4
gpt4 key购买 nike

这是一个非常简单的问题。比如这段代码:

        if(o == null)
{
o = new { };
}
PropertyInfo[] p1 = o.GetType().GetProperties();
foreach(PropertyInfo pi in p1)
{}

但是像这样:

模型A.模型B.模型C.模型D.模型E

如何通过reflect ModelA获取ModelE的值

最佳答案

有解决方案说明here :

使用辅助方法:

public static class ReflectionHelper
{
public static Object GetPropValue(this Object obj, String propName)
{
string[] nameParts = propName.Split('.');
if (nameParts.Length == 1)
{
return obj.GetType().GetProperty(propName).GetValue(obj, null);
}

foreach (String part in nameParts)
{
if (obj == null) { return null; }

Type type = obj.GetType();
PropertyInfo info = type.GetProperty(part);
if (info == null) { return null; }

obj = info.GetValue(obj, null);
}
return obj;
}
}

那么这个方法可以这样使用:

ModelA obj = new ModelA { */....*/ };
obj.GetPropValue("modelB.modelC.modelD.modelE");

请注意,您应该将属性名称而不是类名称传递给函数。

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

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