3

我有一个名为的类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类中的同名属性提供。

这篇文章中,我可以看到可能会将Contact类序列化为 JSON,然后对其进行映射。但我不知道如何获取常量映射。

有任何想法吗?

4

1 回答 1

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));
于 2013-09-06T09:26:26.597 回答