AutoMapper和CA1506:避免过多的类耦合

时间:2019-06-12 15:59:05

标签: c# .net-core automapper code-analysis

在.NET Core 2.2项目中,我们使用的是AutoMapper。在启动文件的ConfigureService方法中,我们在其中注册所有内容,我们调用:

services.AddAutoMapper(typeof(ModelMaps));

我们在ModelMaps类中对CreateMap()进行了所有调用,以将所有模型映射放在一个位置。像这样有很多映射:

CreateMap<WarehouseModel, Warehouse>().ReverseMap();

CreateMap<Import, ImportModel>()
    .ForMember(
        m => m.StatusDescription, opt => opt.MapFrom(
            o => EnumUtility.GetDescriptionFromEnum(o.StatusId)));

使用了100种不同的类型后,我们开始遇到此错误:

  

错误CA1506:“ ModelMaps”与来自“ 8”个不同名称空间的“ 100”个不同类型结合在一起。重写或重构代码以将其类耦合降低到'96'以下。 (8,18)

我知道为什么类耦合不是一个好主意,但是这个实例呢?有没有更好的方式让我们注册这些地图?这真的有问题吗?我们是否应该简单地排除这种错误并继续前进?

0 个答案:

没有答案