Automapper: à l'aide de BeforeMap et AfterMap

Je suis en utilisant automapper (avec succès jusqu'à un certain point) pour effectuer un polymorphe de la carte entre deux interfaces:

configure.CreateMap<IFrom, ITo>()
    .Include<FromImplementation1, ToImplementation1>()
    .Include<FromImplementation2, ToImplementation2>()
    ... ;

Cela fonctionne bien. En plus cependant, les interfaces comprennent les signatures de méthode, les implémentations qui sont destinés à modifier les objets avant de cartographie:

public interface IFrom
{
    void PrepareForMapping();
}

Comme vous pouvez le voir, la méthode n'a pas de retour, mais qui est conçu pour modifier l'état de l'objet avant que la cartographie est effectuée. À l'heure actuelle, cette méthode est appelée manuellement avant que l'objet est mappé, mais mon intention était d'exécuter la méthode automatiquement avant de la cartographie. J'ai tenté de l'utiliser comme suit:

configure.CreateMap<IFrom, ITo>()
    .BeforeMap((x,y) => x.PrepareForMapping())
    .Include<FromImplementation1, ToImplementation1>()
    .Include<FromImplementation2, ToImplementation2>()
    ... ;

Cependant, la méthode n'est jamais appelée, bien que la cartographie elle-même est encore à travailler. J'ai placé des points d'arrêt sur chaque mise en œuvre de la PrepareForMapping() la méthode et aucun d'entre eux sont touchés. Je suis donc venu à la conclusion que je n'ai ni mal comment BeforeMap/AfterMap de travail, ou je fais quelque chose de mal (ou les deux).

Merci beaucoup.

OriginalL'auteur Nigel | 2010-05-10