List<string> 中的属性。这有可能实现吗?

Properties from List<string>. Is this possible to realize?

提问人:beinando 提问时间:1/17/2022 更新时间:1/17/2022 访问量:60

问:

我在stackoverflow上寻找了一段时间,以找到一种将字符串列表“转换”为属性-对象的方法。这是否可能,如果是,我如何实现它?

赋予动机:

我有一个类,比方说有 5 个功能:

classA{
public string feature1 { get; set; };
public string feature2 { get; set; };
public string feature3 { get; set; };
public string feature4 { get; set; };
public string feature5 { get; set; } ;
}

现在,我有一个 mySQL 查询,只想查询 feature3 和 feature5。我保存了 字符串列表中的 query-features。所以我有字符串列表:

List<string> fooooo; 
fooooo.Add("feature3");
fooooo.Add("feature5");

我只想遍历查询中的功能,而不是遍历原始类中的所有功能。

经过一些研究,我试图实现它,具有以下功能:

public static object GetPropValue( object target, string propName )
 {
     return target.GetType().GetProperty( propName ).GetValue(target, null);
 }

这导致了以下错误:

Error: System.NullReferenceException: Object reference not set to an instance of an object.

上面的这个功能有什么问题?

TL;DR:我想将字符串列表(例如“foo1”、“foo2”)“翻译”为属性对象,由属性 foo1 和属性 foo2 组成。

提前致谢!

C# 属性 对象类型

评论

0赞 Caius Jard 1/17/2022
然后用它做什么?
0赞 beinando 1/17/2022
我需要它作为表格进行前端输出,其中只有查询列,而不是原始类的所有属性列
1赞 SomeBody 1/17/2022
这回答了你的问题吗?什么是 NullReferenceException,如何修复它?提示:要么 your 为 null,要么没有 .在这种情况下,返回 null。targetpropNameGetProperty
0赞 beinando 1/17/2022
它在上下文中很有帮助,但并不完全指向我的问题。我知道我从上面的函数中得到了空属性,但我不知道为什么。
1赞 MindSwipe 1/17/2022
在不指定任何内容的情况下使用是一个坏主意。您可以使用(此处)的重载示例。这是一把小提琴,证明它有效GetPropertyBindingFlagsGetPropertyBindingFlags

答: 暂无答案