Lorenzo Lorenzo - 1 month ago 32
C# Question

AutoMapper generic mapping

I have searched on StackOverflow and googled about it but I havent been able to find any help or suggestion on this.

I have a class like the following wich create a

PagedList
object and also uses AutoMappper to map types from source to destination

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

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


I would like to create a Map for this type that should convert it to another type like the following

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


I have tried with

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


but the compiler complains because of
TSrc
and
TDest


Any suggestion?

Answer

According to the AutoMapper wiki:

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

In your case this would be

Mapper.CreateMap(typeof(PagedList<,>), typeof(PagedListViewModel<>));
Comments