ASP.NET Core
のAutoMapper
プロファイルクラスのサービスレイヤーを使用する必要がありますが、コンストラクターにサービスを注入すると機能しません。たとえば、次のように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));
}
}
?
コードを投稿してください。 – maxspan
投稿が編集されました –
あなたのDIセットアップコードも投稿できますか? – Ignas