В настоящее время я использую распознаватель для добавления навигационных ссылок по категориям в мою модель базовой страницы как таковую:
public sealed class CategoryNavigationResolver : IMemberValueResolver<object, object, string, ICollection<ProductCategoryModel>>
{
public ICollection<ProductCategoryModel> Resolve(object source, object destination, string sourceMember, ICollection<ProductCategoryModel> destMember, ResolutionContext context)
{
IProductCategoryHandler productCategoryHandler = DependencyResolver.Current.GetService<IProductCategoryHandler>();
return productCategoryHandler.GetCategoryNavigation();
}
}
и отображение:
CreateMap<BasePage, BasePageModel>()
.IncludeBase<BaseEntity, BaseModel>()
.ForMember(dest => dest.ProductCategoryLinks, opt => opt.ResolveUsing<CategoryNavigationResolver, string>(src => src.Alias));
Однако мне не нужно передавать псевдоним, поскольку мне действительно не нужен источник для преобразователя. Это правильный способ сделать это или есть тип резолвера, где мне не нужно передавать аргумент?
Я пытался использовать
.ForMember(dest => dest.ProductCategoryLinks, opt => opt.UseValue(productCategoryHandler.GetCategoryNavigation()));
перемещение обработчика в профиль, но это дало мне ошибку переполнения стека