首页 > 解决方案 > 使用投影在 Automapper 配置文件中进行本地化

问题描述

我已经使用投影实现了 Automapper。我必须在我的个人资料中使用 IStringLocalizer 但我不能注入它。我尝试使用解析器(IMemberValueResolver),但这与投影不兼容。

你知道我该如何解决这个问题吗?

非常感谢。

路易斯

我尝试使用解析器,但它们与投影不兼容。我需要翻译 Mañana(明天)、Hoy(今天)等词。

这段代码现在正在使用,使用投影。但我想使用本地化。

public ProgrammeDetailEventProfile()
        {
            CreateMap<ProgrammeCheckupEvent, ProgrammeCheckupEventProgressDTO>()
                .ForMember(dest => dest.Value, opt => opt.MapFrom(x => x.Value.Value))
                .ForMember(dest => dest.Date, opt => opt.MapFrom(x =>
                   GetDate(x.Date, x.Meal)))
                .ForMember(dest => dest.LastUpdate, opt => opt.MapFrom(x => x.LastUpdate.HasValue ? x.LastUpdate.Value.ToString("dd/MM/yyyy HH:mm") : " - "));

            #endregion
        }
        public string GetDate(DateTime date, string meal)
        {
            DateTime today = DateTime.Today;
            string detail = meal != null ? meal.ToLower() : date.ToShortTimeString();
            if (today.AddDays(1) == date.Date)
            {
                return $"Mañana, {detail}";
            }
            else if (today == date.Date)
            {
                return $"Hoy, {detail}";
            }
            else if (today.AddDays(-1) == date.Date)
            {
                return $"Ayer, {detail}";
            }
            return $"{date.ToString("dd/MM/yyyy")}, {detail}";
        }

我希望有这样的东西:

return string.Format(localizer["Today"], detail);
//Will show in English, "Today [...]"
//Will show in Spanish, "Hoy [...]"

标签: c#asp.net-corelinq-to-sqlautomapper

解决方案


推荐阅读