我的共享托管公司不允许反射。
如何使用 AutoMapper?
我是否必须为每个属性指定一个 .ForMember?
Mapper.CreateMap<Person, PersonData>()
.ForMember(dest => dest.Name, o => o.MapFrom(src => src.Name))
.ForMember(dest => dest.Address, o => o.MapFrom(src => src.Address));
谢谢,
菲利普
最佳答案
Automapper 使用 reflection.emit
,您确定可以使用 Automapper 吗?
[编辑]
不知道有没有不使用反射的,即使是我在 CodePlex 上创建的 XmlDataMapper 也使用反射。没有反射或reflection.emit就很难设计一个
执行此操作的最简单和基本的方法是,您可以使用这两种或两种技术中的任何一种。
public class ConversionHelper
{
public static ClassB Convert(ClassA item)
{
return new ClassB() { Id = item.Id, Name = item.Name };
}
public static List<ClassB> Convert(List<ClassA> list)
{
return list.Select(o => new ClassB() { Id = o.Id, Name = o.Name }).ToList();
}
}
public class ClassA
{
public int Id { get; set; }
public string Name { get; set; }
}
public class ClassB
{
public int Id { get; set; }
public string Name { get; set; }
}
从您给出的示例中,您无论如何都试图一一映射属性,这是在同一行上,但代码较少。
关于reflection - AutoMapper 和反射,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4332554/