c# - 如何强制 AutoMapper 非常严格?
问题描述
这是一个例子:
class Source
{
public int Value_1 { get; set; }
public int Value_2 { get; set; }
public int MissedValue { get; set; }
}
class Destination
{
public int Value_1 { get; set; }
public int Value_2 { get; set; }
}
void Main()
{
var config = new AutoMapper.MapperConfiguration(cfg =>
{
cfg.CreateMap<Source, Destination>()
.ForMember(dst => dst.Value_1, m => m.MapFrom(src => src.Value_1))
.ForMember(dst => dst.Value_2, m => m.MapFrom(src => src.Value_2))
;
});
config.AssertConfigurationIsValid();
}
最后,当我缺少源字段而不仅仅是目标字段时,我需要 AssertConfigurationIsValid() 来引发异常。
另外,如何强制它禁用任何类型和命名转换?像 int -> string、Test.Id -> TestId 等。我需要它尽可能地受到限制。或者对于我的情况,也许有更好的选择?
UPDATE_0:好的。找到第一部分的答案。只需要使用
cfg.CreateMap<Source, Destination>(AutoMapper.MemberList.Source)
同时支持这两种验证类型会很棒,但这已经是一个好的开始。现在剩下的是,如何删除所有命名约定和类型转换器。
解决方案
推荐阅读
- node.js - 如何用 Homebrew 的节点替换我的节点版本?
- c++ - 如何对对的向量进行排序
按第一个和第二个值? - python - 正则表达式匹配包含月份的日期范围
- sql - 获取两列,一列包含分组值,另一列不包含分组值
- javascript - 切换 TAB 时未调用 statusChanges
- python - Pandas 中的箱线图:带聚合的分组箱线图
- batch-file - 如何根据每个文件名中的文件夹名称将文件移动到现有文件夹?
- python - Python排序嵌套字典
- hockeyapp - 使用 API(令牌)从应用中心/曲棍球应用下载最新的工件
- linux - 在 Linux 上通过 OpenSSH 公钥身份验证使用 Powershell 更新 DNS