3

实际上是否可以使用AutoMapper将类映射到结构?

目前我得到:

{"The type initializer for 'AutoMapper.TypeMapFactory' threw an exception."}

这是我的简化代码:

Mapper.CreateMap<A, B>()
.ForMember(dest => dest.a, opt => opt.MapFrom(src => src.b))
.ForMember(dest => dest.c, opt => opt.MapFrom(src => src.d))
.ForMember(dest => dest.f, opt => opt.MapFrom(src => src.g));

这里A是一个类,B是一个结构。

4

1 回答 1

4

将类实例映射到结构是完全可能的——AutoMapper 对泛型类型参数没有任何约束,并且它适用于结构。例如,如果你有

public class A
{
    public string b { get; set; }
    public int d { get; set; }
    public bool g { get; set; }
}

public struct B
{
    public bool f;
    public string a;
    public int c;
}

使用您的映射,以下代码可以正常工作:

var a = new A { b = "b", d = 42, g = false };
var b = Mapper.Map<B>(a);
于 2013-07-09T14:42:00.700 回答