c# - 从哈希表创建对象 C#

标签 c# reflection

在 C# 中 给定一个像 {id:'1', name:'foo'}

这样的哈希表

如何动态创建具有相同成员的类的实例?

public class product {
    public int id;
    public string name;
}

我知道我会遇到选角问题,但我稍后会处理这些问题。现在我什至无法根据哈希表的键访问类的成员。我这样做的方式正确吗?

这就是我目前的处理方式。

product p = new product();
Type description = typeof(product);
foreach (DictionaryEntry d in productHash)
{
    MemberInfo[] info = description.GetMember((string)d.Key);
    //how do  I access the member of p based on the memberInfo I have?
    //p.<?> = d.Value;
}

谢谢

最佳答案

首先,您需要将成员作为属性进行访问。然后,您可以向属性询问特定实例的值:

PropertyInfo property = description.GetProperty((string) d.Key);

object value = property.GetValue(p, null);

第二个参数是索引,只有属性为indexer时才会生效.

关于c# - 从哈希表创建对象 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4307148/

相关文章:

c# - 使用 C# 是否可以测试文件上是否持有锁

c# - 使用 System.Reflection 从 DLL 程序集中获取 DataMember

java - 如何通过 Java 17 中的反射获取所有 Record 字段及其值?

vb.net - 为什么使用 Type.Equals(t1, t2) 而不是相等运算符?

c# - 我在哪里可以找到 .NET 中的 "clamp"函数?

c# - 如何为 ashx 文件设置页面标题?

c# - 以编程方式使用选中的选项填充 CheckBoxList

c# - 如何发布Windows应用程序并且只获取.exe文件?

java - java.lang.reflect 和 java.lang.invoke 之间有什么区别?

java - 测试方法的返回类型是否为数字?