2017-05-25 7 views
1

Ich habe die folgenden Konstruktoren in einer HuntMemberBLL-Klasse.Wie kann ich Automapper parameterlosen Konstruktor wählen

// Default Constructor 
    public HuntMemberBLL() 
    {IsNew = true;} 

    // Get Constructor 
    public HuntMemberBLL(long HuntMemberID) 
    { //DbLoading 
     IsNew = false; 
    } 

Und ich habe eine HuntMemberDTO Klasse, die keine Konstrukteuren hat. Das Problem ist, wenn ich versuche, HuntMemberBLL-Klasse zuzuordnen, wählt Automapper Get Konstruktor anstelle des Standardkonstruktors. Gibt es eine Möglichkeit, stattdessen den Standardkonstruktor zu verwenden?

Antwort

1

Sie können den Konstruktor angeben, den Sie über die ConstructUsing-Methode verwenden möchten. Zum Beispiel so etwas wie:

Mapper.Initialize(config => 
config.CreateMap<HuntMemberDTO, HuntMemberBLL>() 
     .ConstructUsing((Func<HuntMemberDTO, HuntMemberBLL>)(x => new HuntMemberBLL())); 
+0

Ich habe bereits versucht, dass, es gibt mir eine Fehlermeldung, „Der Anruf zwischen den folgenden Methoden oder Eigenschaften nicht eindeutig ist:‚AutoMapper.IMappingExpression .ConstructUsing (System.Func ) 'und' AutoMapper.IMappingExpression .ConstructUsing (System.Func <.. HuntMemberDTO, HuntMemberBLL>) " – sandeep

+0

AutoMapper benötigt Type Information. Können Sie versuchen, wie ich meinen Code oben jetzt bearbeitet habe? – gpanagopoulos

+0

Danke, es hat funktioniert. – sandeep

Verwandte Themen