首页 > 解决方案 > 如何将值附加到现有值

问题描述

使用 mapster 出现以下问题
https://github.com/MapsterMapper/Mapster

我必须上课和一个dto课。

public class Client {
    public string Requirements { get; set; }
}

public class ClientDto {
    public bool RequirePkce { get; set; }
}

现在我想将需求中的值映射到 ClientDto 类中的布尔值,然后返回。从字符串到布尔值很容易,我将使用以下内容:

config.NewConfig<Client, ClientDto>()
                .Map(dest => dest.RequirePkce, src => (src.Requirements ?? "").Contains("ft:pkce"));

但是我找不到映射回字符串字段的方法...映射时有什么方法可以访问目标对象?` 如下所示:

config.NewConfig<ClientDto, Client>().Map(dest => dest.Requirements, (src: ClientDto, dest: Client) => {
            var ls = dest.Requirements.Split(";").ToList();

            if (src.RequirePkce)
            {
                if (!ls.Contains("ft:pkce"))
                {
                    ls.Add("ft:pkce");
                }
            }
            else
            {
                if (ls.Contains("ft:pkce"))
                {
                    ls.Remove("ft:pkce");
                }
            }

            return String.Join(";", ls);
          });

这只是一个例子!要求字符串属性中还有更多值,我必须以类似的方式进行映射。我希望我已经可以理解地解释我的问题...

标签: mapster

解决方案


推荐阅读