2016-04-06 5 views
0

Как получить имя свойства назначения:AutoMapper: Как получить имя свойства назначения

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

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

Использование AutoMapper, как я получить имя свойства получателя, когда я прохожу источник Имя свойства.

+0

как я могу получить имя свойство назначения, когда я передаю имя свойства источника. –

+0

Непонятно, что вы просите. –

+0

Могу ли я спросить, зачем вам это имя? А что, если есть несколько свойств назначения? (Вы можете переназначить Source несколько раз). –

ответ

3

Для некоторых конфигурации карты:

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

Вы можете определить метод, как это:

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; 
} 

Затем использовать его следующим образом:

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

Нет, я не хочу сопоставления. Когда я передаю FirstName, я должен получить C_First_Name. Свойство Name of Destination. –

+0

Извините, я не понимаю, о чем вы спрашиваете. Можете ли вы добавить пример? –

+0

Просьба посмотреть: http://stackoverflow.com/questions/7561602/automapper-how-to-get-source-property-name-from-propertymap –

Смежные вопросы