2010-02-15 1 views
7

Есть ли способ, чтобы получить Automapper отобразить сложный исходный граф, как:Может ли Automapper сопоставить сложный исходный граф с плоской точкой назначения без префиксов в целевых свойствах и без пользовательских сопоставлений?

public class Source { 
    public string Name { get; set; } 
    public SourceSub Sub { get; set; } 
} 

public class SourceSub { 
    public string ValA { get; set; } 
    public string ValB { get; set; } 
} 

к плоскому месту назначения, который выглядит как:

public class Dest { 
    public string Name { get; set; } 
    public string ValA { get; set; } 
    public string ValB { get; set; } 
} 

Я знаю, что-то, как это будет работать для назначения:

public class Dest { 
    public string Name { get; set; } 
    public string SubValA { get; set; } 
    public string SubValB { get; set; } 
} 

Однако я ищу способ отображения к месту назначения без необходимости префикса в свойствах назначения (для детей CLAS s в источнике), если имена в свойствах дочернего класса источника совпадают с именами свойств назначения. Есть ли способ сообщить Automapper о свойствах проекта в дочернем классе источника для плоского целевого класса без отображения каждого отдельного члена?

+0

Это простая задача для ValueInjecter, потому что вы можете сделать с ней любой алгоритм отображения, который вы можете себе представить. Http://valueinjecter.codeplex.com/documentation – Omu

+0

Сменилось ли это с годами? Было бы здорово сделать что-то вроде этого: CreateMap (). ForSourceMember (s => s.Sub, o => o.FromBase ()) –

ответ

1

Нет, это не поддерживается сценарий прямо сейчас. Некоторое время мы смотрели на него, но обнаружили, что для наших приложений слишком высокий уровень коллизии именования, а сглаживание имени сохранил полный контекст для того, откуда это значение.

+0

@Jimmy: Спасибо за ответ. Во-первых, позвольте мне сказать, что мы любим AutoMapper. Спасибо за ваш вклад. Было бы неплохо добавить функцию V2 для поддержки опции для сопоставления различных префиксов, чем то, что назван дочерним классом для сплющенного объекта. Кроме того, возможно, опция включения/отключения того, что я пытаюсь сделать для отдельных карт. Просто запрос, я знаю, что в вашей очереди много других запросов, и это может противоречить или быть слишком сложным. –

+0

Мне также хотелось бы иметь возможность сделать это. – Schneider

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