2013-07-09 65 views
1

實際上是否可以使用AutoMapper將類映射到結構?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是一個結構。

+0

而且做得拋出什麼異常?它應該被包含爲一個InnerException。 –

回答

1

將類實例映射到結構是完全可能的 - 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); 
+0

對不起 - 我不認爲這可以工作。 automapper如何知道如何將A的b映射到B的f? – cs0815

+0

@csetzkorn正如我告訴的,從你的地圖 –

+0

好的謝謝。事實證明,我從nuget獲得了每個發行版的版本。 – cs0815