web-dev-qa-db-fra.com

Mappage générique AutoMapper

J'ai recherché sur StackOverflow et googlé à ce sujet, mais je n'ai pas pu trouver d'aide ou de suggestion à ce sujet.

J'ai une classe comme la suivante qui crée un objet PagedList et utilise également AutoMappper pour mapper les types de la source à la destination

public class PagedList<TSrc, TDest>
{
    protected readonly List<TDest> _items = new List<TDest>();

    public IEnumerable<TDest> Items {
        get { return this._items; }
    }
}

Je voudrais créer une carte pour ce type qui devrait la convertir en un autre type comme le suivant

public class PagedListViewModel<TDest>
{
    public IEnumerable<TDest> Items { get; set; }
}

J'ai essayé avec

Mapper.CreateMap<PagedList<TSrc, TDest>, PagedListViewModel<TDest>>();

mais le compilateur se plaint à cause de TSrc et TDest

Toute suggestion?

18
Lorenzo

Selon le wiki AutoMapper :

public class Source<T> {
    public T Value { get; set; }
}

public class Destination<T> {
    public T Value { get; set; }
}

// Create the mapping
Mapper.CreateMap(typeof(Source<>), typeof(Destination<>));

Dans votre cas, ce serait

Mapper.CreateMap(typeof(PagedList<,>), typeof(PagedListViewModel<>));
31
Jeroen Vannevel