2017-07-03 55 views
0

我需要在配置文件类ASP.NET Core中使用服务层,但是当我在构造函数中注入服务时,它不起作用。例如:如何在AutoMapper配置文件类中注入服务

public class UserProfile : Profile 
{ 
    private readonly IUserManager _userManager; 

    public UserProfile(IUserManager userManager) 
    { 
     _userManager = userManager; 

     CreateMap<User, UserViewModel>() 
      .ForMember(dest => dest.FullName, opt => opt.MapFrom(src => $"{src.FirstName} {src.LastName}")); 
    } 
} 

而且在Startup类:

public class Startup 
{ 
    public IConfigurationRoot Configuration { set; get; } 

    public Startup(IHostingEnvironment env) 
    { 
     //some code 
    } 

    public void ConfigureServices(IServiceCollection services) 
    { 
     services.AddSingleton<IActionContextAccessor, ActionContextAccessor>(); 
     services.AddMvc(); 
     services.AddScoped<IUsersPhotoService, UsersPhotoService>(); 
     services.AddAutoMapper(typeof(UserProfile)); 
    } 
} 

怎么办呢?

+1

请张贴您的代码。 – maxspan

+0

该帖子已被编辑 –

+1

你可以发布你的DI设置代码吗? – Ignas

回答

6

要解决您的问题,您只需在DI中连接IUserManager,并确保UserProfile依赖关系已解决。如果说这样,我可能会尝试为每个类保留单个责任,并且没有任何服务注入到映射配置文件中。您可以在映射之前填充对象。这样,单元测试也可能更容易。

+0

拯救我的生命!泰 – Ricardo