gpt4 book ai didi

asp.net-core - 在 AutoMapper 配置文件中获取登录用户

转载 作者:行者123 更新时间:2023-12-05 06:37:14 24 4
gpt4 key购买 nike

我有 asp.net core 2.0 web api 项目。每个 Domain 类都继承 BaseEntity 类:

public class BaseEntity
{
public Guid Id { get; set; }

public DateTime CreatedOn { get; set; }

public Guid CreatedBy { get; set; }

public DateTime ModifiedOn { get; set; }

public Guid ModifiedBy { get; set; }
}

为了将 View 模型转换为 DTO-s,我使用 AutoMapper。

我创建了两个配置文件,一个用于 ViewModel 到 DTO,另一个用于 DTO 到 ViewModel。

在我将 ViewModel 映射到 DTO 的配置文件中,我需要 BaseEntity 字段

    public Guid CreatedBy { get; set; }

public Guid ModifiedBy { get; set; }

从授权用户映射。我已经设置了身份验证,只需要从 AutoMapper 配置文件类访问授权用户对象。

有什么办法可以做到这一点吗?

最佳答案

您必须在 AutoMapper 中使用自定义值解析器才能将您的用户对象放入上下文中。

配置文件配置

Mapper.CreateMap<ViewModel, Dto>()
.ForMember(d => d.CreatedBy, opt => opt.ResolveUsing((src, dest, destMember, res) => res.Context.Options.Items["CreatedBy"]));

调用映射器时

Mapper.Map<ViewModel, Dto>(src, opt => opt.Items["CreatedBy"] = this.createdByUserObject);

关于asp.net-core - 在 AutoMapper 配置文件中获取登录用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48077620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com