【发布时间】:2018-01-03 04:12:13
【问题描述】:
我在一个 asp.net core 2.0 项目中使用 Automapper。我使用自动装配扫描注册我的映射配置文件,如下所示:
services.AddAutoMapper();
我的数据层中有如下映射配置文件:
public class JobDetailMappingProfile : Profile
{
public JobDetailMappingProfile()
{
string dateFormat = "MM/dd/yyyy"; //todo: get this from main app config
CreateMap<JobDetail, JobDetailViewModel>()
.ForMember(x => x.StartDate, opt => opt.MapFrom(s => s.StartDate.ToString(dateFormat)))
.ForMember(x => x.StartDate, opt => opt.MapFrom(s => s.StartDate.ToString(dateFormat)));
CreateMap<JobDetailViewModel, JobDetail>()
.ForMember(x => x.StartDate, opt => opt.MapFrom(s => DateTime.ParseExact(s.StartDate, dateFormat, CultureInfo.InvariantCulture )))
.ForMember(x => x.EndDate, opt => opt.MapFrom(s => DateTime.ParseExact(s.EndDate, dateFormat, CultureInfo.InvariantCulture)));
}
}
我想从项目设置文件中读取 dateFormat 字符串,但我不知道如何将配置服务或值注入配置文件并同时使用程序集扫描。
这是手动注册每个配置文件的唯一方法吗?
【问题讨论】:
-
您可以改用您的 DI 容器。
-
怎么样?我将我的配置注册为服务,但如何将其注入映射配置文件?
-
像往常一样,使用容器创建配置文件实例。
-
是的,但这会注入控制器。如何使其注入映射配置文件?
-
配置文件只是另一个对象。
标签: c# automapper