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 に答える