I have a source DTO like this
public class Member
{
public string MemberId {get;set;}
public string MemberType {get;set;}
public string Name {g
With automapper you must specify return type on invocation mapper eg. mapper.Map, this tells that return type is PersonMember so you can't return CompanyMember.
You can do something like this:
var configPerson = new MapperConfiguration(cfg => cfg.CreateMap());
var configCompany = new MapperConfiguration(cfg => cfg.CreateMap());
PersonMember personMember = null;
CompanyMember companyMember = null;
switch (member.MemberType )
{
case "PersonMember":
var mapper = configPerson.CreateMapper();
personMember = mapper.Map(member);
break;
case "CompanyMember":
var mapper = configCompany.CreateMapper();
companyMember = mapper.Map(member);
break;
default:
throw new Exception("Unknown type");
break;
}
Or you can try Custom type converters with object as return type.