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

该词典中的键对应于我的类(class)的属性名称,其值将是该类(class)的属性的值。

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/

10-10 14:04