C# AutoMapper Conditionnelle de Cartographie basé sur la valeur de la cible

Veuillez peut-on conseiller sur la façon d'utiliser conditionnelle de la cartographie dans AutoMapper à la carte d'une valeur dans l'objet CIBLE à partir d'une SOURCE d'objet basé sur une CIBLE existante valeur de la propriété?

Donc ma source de la classe est:

public class UserDetails
{
    public String Nickname { get; set; }
}

Ma classe cible est:

public class ProfileViewModel
{
    public Boolean NicknameIsVisible { get; set;
    public String Nickname { get; set; }
}

Je veux mettre le "Surnom" la valeur de la propriété dans l'OBJECTIF de faire correspondre le "Surnom" la valeur de la propriété de la SOURCE uniquement si la cible de la propriété "NicknameIsVisible" la valeur est déjà défini à TRUE, sinon je veux définir la CIBLE "Surnom" la valeur de la propriété à une chaîne vide.

J'ai essayé quelque chose comme ceci (qui a l'habitude de compiler )...

Mapper.CreateMap<UserDetails, ProfileViewModel>()
.ForMember(
            destination => destination.Nickname,
            option => option.
                .MapFrom(
                    source => source.NicknameIsVisible ? 
                    source.Nickname :
                    String.Empty)
);

mais "NicknameIsVisible" n'est pas une propriété de ma SOURCE, mais de ma CIBLE.

BTW, Mon ProfileViewModel est lié à trois entités à l'aide de Owain Wragg de la méthode (http://consultingblogs.emc.com/owainwragg/archive/2010/12/22/automapper-mapping-from-multiple-objects.aspx) et c'est une autre entité qui donne de la valeur à la "NicknameIsVisible de la propriété".

Svp quelqu'un peut-il suggérer la bonne syntaxe à utiliser pour ce problème?

OriginalL'auteur Dib | 2014-06-23