У меня есть контроллер mvc, в который вставлен вспомогательный класс.Я хотел бы преобразовать из viewmodel в dto с помощью automapper.большинство свойств являются простыми отображениями, но одно включает вызов вспомогательного класса с параметром из модели представления.В идеале я хотел бы сделать что-то вроде этого:
Mapper.CreateMap<TheViewModel, TheDto>()
.ForMember(dest => dest.Url, o => o.MapFrom(src => _urlHelper.GenerateUrlFromUsername(src.Username)));
... но я не могу, потому что я не могу получить доступ к нестатическому полю.
Каков наилучший подход?
РЕДАКТИРОВАТЬ:
ОК, поэтому у меня есть собственный распознаватель, но как мне подключить его к моему контейнеру IoC?
public class CustomResolver : ValueResolver<TheViewModel, string>
{
private readonly IUrlHelper _urlHelper;
public CustomResolver(IUrlHelper urlHelper)
{
_urlHelper = urlHelper;
}
protected override string ResolveCore(TheViewModel source)
{
return _urlHelper.GenerateUrlFromUsername(source.Username);
}
}