C# 读取字符串中的类树路径并访问给定该类实例的值

米雷雅克

在 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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C ++中读取字符串

来自分类Dev

在C ++中读取字符串

来自分类Dev

从C中的二进制文件读取字符串时发生访问冲突

来自分类Dev

在C中逐字符读取字符串

来自分类Dev

在C中逐字符读取字符串

来自分类Dev

从共享内存C ++ POSIX中读取字符串

来自分类Dev

在C中从文件读取字符串输入

来自分类Dev

在C中读取字符串时scanf的行为

来自分类Dev

目标C:从CSV文件中读取字符串

来自分类Dev

如何获取字符串C ++中字符的值?

来自分类Dev

从文件C ++读取字符串

来自分类Dev

在C#中获取字符串之间的值

来自分类Dev

读取整数后C无法读取字符串

来自分类Dev

字符串的C ++错误读取字符

来自分类Dev

OLEDB连接未读取字符串值C#

来自分类Dev

从txt文件中读取字符串,然后在c ++中的第一行停止

来自分类Dev

C提示使用getchar()读取字符串

来自分类Dev

Beckhoff C#从PLC读取字符串数组

来自分类Dev

C提示使用getchar()读取字符串

来自分类Dev

C ++读取字符串分段错误

来自分类Dev

读取字符串直到标志 (C++)

来自分类Dev

在C中读取字符串时,while循环何时停止?

来自分类Dev

如何在C ++中按char读取字符串char?

来自分类Dev

从C中的名称文件读取字符串时遇到问题

来自分类Dev

在C中读取字符串时,while循环何时停止?

来自分类Dev

在C中读取字符串以防止出现问题的正确方法是什么

来自分类Dev

C-从文本文件中读取字符串并按大小排列

来自分类Dev

C从文件中读取字符串内容并比较相等性

来自分类Dev

从C中的文件读取字符串和整数的组合