J'utilise Automapper
(v5.1.1.0) et Ninject
(v3.2.0.0). Ma classe de profil est :
public class ApplicationUserResponseProfile : Profile
{
public ApplicationUserResponseProfile(HttpRequestMessage httpRequestMessage)
{
UrlHelper urlHelper = new UrlHelper(httpRequestMessage);
CreateMap<ApplicationUser, ApplicationUserResponseModel>()
.ForMember(dest => dest.Url, opt => opt.MapFrom(src => urlHelper.Link("GetUserById", new { id = src.Id })));
}
public ApplicationUserResponseModel Create(ApplicationUser applicationUser)
{
return Mapper.Map<ApplicationUserResponseModel>(applicationUser);
}
}
Et AutoMapperWebConfiguration l'est :
Mapper.Initialize(cfg =>
{
cfg.AddProfile<ApplicationUserResponseProfile>(); // unable to configure
});
J'ai également essayé de le lier au noyau Ninject :
var config = new MapperConfiguration(
c =>
{
c.AddProfile(typeof(ApplicationUserResponseProfile));
});
var mapper = config.CreateMapper();
kernel.Bind<IMapper>().ToConstant(mapper);
Et d'une manière différente :
Mapper.Initialize(cfg =>
{
cfg.ConstructServicesUsing((type) => kernel.Get(type));
cfg.AddProfile(typeof(ApplicationUserResponseProfile));
});
Mais j'ai eu une erreur dans les deux cas -
Aucun constructeur sans paramètre défini pour cet objet
Aidez-moi, s'il vous plaît. Je ne parviens pas à configurer AutoMapper
classe de profil (qui a un paramètre) avec Ninject
. Existe-t-il un autre moyen de résoudre ce problème ?