c# - 从字典中填充一个类

标签 c# .net performance reflection

我有一个包含 100 多个字段和值的字典集合。有没有一种方法可以使用此集合来填充具有 100 个字段的巨大类?

此字典中的键对应于我的类的属性名称,值将是该类的属性值。

Dictionary<string, object> myDictionary = new Dictionary<string, object>();
myDictionary.Add("MyProperty1", "Hello World");
myDictionary.Add("MyProperty2", DateTime.Now);
myDictionary.Add("MyProperty3", true);

填充以下类的属性。

public class MyClass
{
   public string MyProperty1 {get;set;}
   public DateTime MyProperty2 {get;set;}
   public bool MyProperty3 {get;set;}
}

最佳答案

您可以使用 GetProperties获取给定类型的属性列表并使用 SetValue为给定属性设置特定值:

MyClass myObj = new MyClass();
...
foreach (var pi in typeof(MyClass).GetProperties())
{
     object value;
     if (myDictionary.TryGetValue(pi.Name, out value)
     {
          pi.SetValue(myObj, value);
     }
}

关于c# - 从字典中填充一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9167083/

相关文章:

c# - P/通过损坏的名称调用函数

c# - 谁能推荐一种方法来检查类是否可以序列化为 XML?

javascript - NW/Node Webkit - 图像解码,即使它已经可见

c# - asp.net core (mvc) ViewModel请求主键

c# - AppFabric 缓存服务器复制

.net - 使用 MVVM 轻量级工具包动态创建 ViewModel

c# - 动态转换和消息类型

c# - 使用 C# Windows 应用程序在电子邮件正文中添加多个图像(内联)

php - 在 PHP (>= 5.0) 中,通过引用传递是否更快?

c - 向量化嵌套索引