在 C# 中,是否可以在给定该类的实例的情况下读取字符串中的类树路径并以编程方式访问值?
例如:
public class LogGeometricModel
{
public double SmallEndDiameter { get; set; }
public double LargeEndDiameter { get; set; }
public class Log
{
public Guid Id { get; set; }
public LogGeometricModel GeometricModel { get; set; }
}
public class Solution
{
public DateTime TimeStamp { get; set; }
public double Price { get; set; }
public Log RotatedLog { get; set; }
}
字符串可能是这样的(类树中的路径):
SmallEndDiameter = "Solution/RotatedLog/GeometricModel/SmallEndDiameter"
LargeEndDiameter = "Solution/RotatedLog/GeometricModel/LargeEndDiameter"
价格= "解决方案/价格"
Id =“解决方案/日志/Id”
通过读取这些字符串,我想访问 SmallEndDiameter、LargeEndDiameter、Price 和 Id 的实际值。
绝对有可能是的。
public static object GetValue(object instance, string path)
{
object currentObject = instance;
foreach (string propertyName in path.Split('/'))
{
currentObject = currentObject
.GetType()
.GetProperty(propertyName)
.GetValue(currentObject, null);
}
return currentObject;
}
您不需要在字符串中包含“解决方案”。这显然缺乏错误处理,如果你解析这样的字符串,你会想要的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句