我有一个名为Contact
的类和另一个名为ContactKeys
的类,它包含Int32
个常量。每个常量映射到Contact
类的属性并具有相同的名称。
public class Contact
{
public string Name { get; set; }
public int Age { get; set; }
}
public static class ContactKeys
{
public const int Name = 5284;
public const int Age = 9637;
}
使用Automapper,我需要创建一个Dictionary<int, object>
对象,其中键是来自ContactKey
的常量,并且该值由Contact
类中的同名属性提供。
从this post我可以看到,可能会将Contact
类序列化为JSON,然后映射它。但我不知道如何映射常量。
有什么想法吗?
答案 0 :(得分:1)
我不知道AutoMapper以及为什么需要用它来解决这个问题,但这是一个使用反射的解决方案:
Contact myContact = ...;
typeof(ContactKeys)
.GetFields(BindingFlags.Public | BindingFlags.Static)
.ToDictionary(f => (int)f.GetValue(null),
f => typeof(Contact).GetProperty(f.Name).GetValue(myContact));