gpt4 book ai didi

c# - 源属性为空时所有字符串属性的默认值

转载 作者:行者123 更新时间:2023-11-30 14:27:43 26 4
gpt4 key购买 nike

是否可以使用 AutoMapper 将源对象中所有为 null 的字符串属性设置为目标对象中的某个默认值?

例如,假设我有以下两个类定义:

public class UniversalForm
{
public string LastName { get; set; }
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string FaxNumber { get; set; }
...
}

public class UniversalFormDto
{
public string LastName { get; set; }
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string FaxNumber { get; set; }
...
}

现在,MiddleName 和 FaxNumber 是 UniversalForm 类中可能为 null 的属性。所以我希望能够做的是,如果 FaxNumber 或 MiddleName 为空,那么在 UniversalFormDto 对象中我希望将相应属性的值设置为“N/A”。

我知道这可以通过为每个成员创建一个映射来实现,但我想尽可能避免这种情况。

我正在寻找一种方法来为我的所有字符串属性定义一个默认值,以便在我的源对象 (UniversalForm) 上的相应属性为 null 时使用。

最佳答案

以下是我知道的几种方法:

所有成员

所有属性的所有空值都将替换为 "N/A"。如果任何属性无法映射到字符串,将会崩溃:

cfg.CreateMap<UniversalForm, UniversalFormDto>()
.ForAllMembers(opt => opt.NullSubstitute("N/A"));

成员(member)

每个单独属性的替代品:

cfg.CreateMap<UniversalForm, UniversalFormDto>()
.ForMember(dto => dto.FirstName, opt => opt.NullSubstitute("N/A"))
...
;

转换使用

任何属性中所有 null 字符串的通用替代:

cfg.CreateMap<string, string>().ConvertUsing(s => s ?? "N/A");

关于c# - 源属性为空时所有字符串属性的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31843618/

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