2016-04-06 7 views
0

Wie kann ich den Namen des Ziel Eigentum:AutoMapper: Wie kann ich den Namen des Ziel Eigenschaft

Public class Source{ 
    public string FirstName{ get; set; } 
} 

public class Destination{ 
    public string C_First_Name{ get; set; } 
} 

Mit AutoMapper, wie bekomme ich den Namen des Ziel Eigenschaft, wenn i Quelle übergeben Name des Anwesens.

+0

wie bekomme ich den Namen Die Zieleigenschaft, wenn ich den Quelleigenschaftsnamen übergebe. –

+0

Es ist nicht klar, was Sie fragen. –

+0

Darf ich fragen, warum Sie diesen Namen benötigen? Und was, wenn es mehr als ein Reiseziel gibt? (Sie können Source mehrfach zuordnen). –

Antwort

3

Für einige Map-Konfiguration:

var mapper = new MapperConfiguration(cfg => 
{ 
    cfg.CreateMap<Source, Destination>().ForMember(dst => dst.C_First_Name, opt => opt.MapFrom(src => src.FirstName)); 
}); 

Sie eine Methode wie folgt definieren:

public string GetDestinationPropertyFor<TSrc, TDst>(MapperConfiguration mapper, string sourceProperty) 
{ 
    var map = mapper.FindTypeMapFor<TSrc, TDst>(); 
    var propertyMap = map.GetPropertyMaps().First(pm => pm.SourceMember == typeof(TSrc).GetProperty(sourceProperty)); 

    return propertyMap.DestinationProperty.Name; 
} 

dann verwenden, etwa so:

var destinationName = GetDestinationPropertyFor<Source, Destination>(mapper, "FirstName"); 
+0

Nein, ich möchte keine Zuordnung. Wenn ich FirstName überlasse, sollte ich den C_First_Name erhalten können. Der Name der Destination-Eigenschaft. –

+0

Tut mir leid, ich verstehe nicht, was du fragst. Kannst du ein Beispiel hinzufügen? –

+0

Bitte werfen Sie einen Blick: http://StackOverflow.com/Questions/7561602/Automapper-How-to-get-Source-Eigenschaft-Namens-von-Propertymap –

Verwandte Themen